JavaScript オブジェクトの配列内で ID によってオブジェクトを検索する 質問する

JavaScript オブジェクトの配列内で ID によってオブジェクトを検索する 質問する

配列があります:

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

配列の構造を変更できません。 の ID が渡され45'bar'配列内のそのオブジェクトを取得したいと考えています。

これを JavaScript または jQuery で実行するにはどうすればよいですか?

ベストアンサー1

次の方法を使用しますfind()

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

から翻訳:

このfind()メソッドは、配列内の要素が指定されたテスト関数を満たす場合、配列の最初の値を返します。それ以外の場合はundefinedが返されます。


代わりにインデックスを検索する場合は、次を使用しますfindIndex()

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

から翻訳:

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


一致する要素の配列を取得したい場合は、filter()代わりに次の方法を使用します:

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

これはオブジェクトの配列を返します。fooプロパティの配列を取得したい場合は、map()方法:

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

補足:find()またはfilter()、およびのようなメソッド矢印関数古いブラウザ(IEなど)ではサポートされていないため、これらのブラウザをサポートしたい場合は、バベル(とともにポリフィル)。

おすすめ記事