Javascript のオブジェクト配列内にオブジェクト値が存在するかどうかを確認し、存在しない場合は配列に新しいオブジェクトを追加します。質問する

Javascript のオブジェクト配列内にオブジェクト値が存在するかどうかを確認し、存在しない場合は配列に新しいオブジェクトを追加します。質問する

次のようなオブジェクトの配列があるとします。

[ { id: 1, username: 'fred' }, { id: 2, username: 'bill' }, { id: 2, username: 'ted' } ]

配列をループして、特定のユーザー名の値が既に存在するかどうかを確認し、存在する場合は何もせず、存在しない場合は、そのユーザー名 (および新しい ID) を使用して配列に新しいオブジェクトを追加する方法はありますか?

ありがとう!

ベストアンサー1

ここでは s が一意であることを意図していると想定しましたidsome配列内のものの存在を確認するのに最適な関数です。

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'));

おすすめ記事