1. ホーム
  2. ジャバスクリプト

[解決済み】オブジェクトの値がJavascriptのオブジェクトの配列内に存在するかどうかをチェックし、存在しない場合は配列に新しいオブジェクトを追加します。

2022-04-09 16:22:56

質問

以下のようなオブジェクトの配列があった場合。

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

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

ありがとうございます。

解決方法は?

私が想定しているのは 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'));