1. ホーム
  2. javascript

[解決済み] JavaScriptのオブジェクトの配列からidでオブジェクトを検索する

2022-03-15 20:21:01

質問

配列があるんだけど

myArray = [{'id':'73','foo':'bar'},{'id':'45','foo':'bar'}, etc.]

配列の構造を変更することができません。というidで渡されます。 45 を取得したいのですが、そのためには 'bar' を、配列の中のそのオブジェクトのために使用します。

JavaScriptまたはjQueryを使用してこれを行うにはどうすればよいですか?

どのように解決するのですか?

を使用します。 find() メソッドを使用します。

myArray.find(x => x.id === '45').foo;

から MDN :

find() メソッドは、もし配列の要素が指定したテスト関数を満たしていれば、 配列の最初の値を返します。そうでない場合は undefined が返される。


もし、その インデックス を使用します。 findIndex() :

myArray.findIndex(x => x.id === '45');

から MDN :

findIndex() メソッドは、指定されたテスト関数を満たす配列の最初の要素のインデックスを返します。そうでない場合は -1 が返されます。


マッチした要素の配列を取得したい場合は filter() メソッドで代用できます。

myArray.filter(x => x.id === '45');

これは、オブジェクトの配列を返します。の配列を取得したい場合は foo プロパティを使用することで、これを行うことができます。 map() メソッドを使用します。

myArray.filter(x => x.id === '45').map(x => x.foo);


余談:以下のようなメソッド find() または filter() および 矢印機能 は古いブラウザ(IEなど)ではサポートされていないため、これらのブラウザに対応させたい場合は バベル (を使用)。 ポリフィル ).