次のようなオブジェクトの配列があるとします。
[ { id: 1, username: 'fred' }, { id: 2, username: 'bill' }, { id: 2, username: 'ted' } ]
配列をループして、特定のユーザー名の値が既に存在するかどうかを確認し、存在する場合は何もせず、存在しない場合は、そのユーザー名 (および新しい ID) を使用して配列に新しいオブジェクトを追加する方法はありますか?
ありがとう!
ベストアンサー1
ここでは s が一意であることを意図していると想定しましたid
。some
配列内のものの存在を確認するのに最適な関数です。
const arr = [{ id: 1, username: 'fred' }, { id: 2, username: 'bill' }, { id: 3, username: 'ted' }];
function add(arr, name) {
const { length } = arr;
const id = length + 1;
const found = arr.some(el => el.username === name);
if (!found) arr.push({ id, username: name });
return arr;
}
console.log(add(arr, 'ted'));