teratailの質問に回答したコードを、Qiitaにも残しておきます。
元データを変更せず(非破壊)に、除外リストで指定された項目を取り除いたオブジェクトリストを新たに作る方法です。
- オブジェクトリストを
map
して別のオブジェクトリストを作る - 各オブジェクトから
Object.entries
で[key, value]
リストを列挙する - 削除しない項目を
filter
で抽出する -
Object.fromEntries
でオブジェクトにする
const members = [
{ firstname: 'Taro', lastname: 'Yamada', age: 20 },
{ firstname: 'Hanako', lastname: 'Hanako', age: 10 },
];
const secrets = [ 'lastname', 'age' ];
const anonymous = members.map(member =>
Object.fromEntries(Object.entries(member)
.filter(([key, value]) => !secrets.includes(key))))
console.log(anonymous)
実行結果
[ { firstname: 'Taro' }, { firstname: 'Hanako' } ]