オブジェクトの配列があります
このように配列内を検索しています
let arr = [
{ name:"string 1", arrayWithvalue:"1,2", other: "that" },
{ name:"string 2", arrayWithvalue:"2", other: "that" },
{ name:"string 2", arrayWithvalue:"2,3", other: "that" },
{ name:"string 2", arrayWithvalue:"4,5", other: "that" },
{ name:"string 2", arrayWithvalue:"4", other: "that" },
];
var item = arr.find(item => item.arrayWithvalue === '4');
console.log(item)
これは、この2行の配列を返す必要があります
{ name:"string 2", arrayWithvalue:"4,5", other: "that" },
{ name:"string 2", arrayWithvalue:"4", other: "that" }
最初に一致した1行のみを返します。
{ name:"string 2", arrayWithvalue:"4", other: "that" }
これには外部ライブラリを使用したくありません。条件に一致するすべての一致を返すにはどうすればよいですか?
filter
の代わりにfind
メソッドを使用する必要があります。これは、渡された関数から真の値を返すメンバーのみを含む新しい配列を返します。
Array.prototype.find()
は、 MDN仕様に従って :提供された配列の最初の要素の値を返しますテスト機能。
代わりに使用したいのは、テスト関数に一致するすべてのインスタンスの配列を返す filter function.filter()
です。
配列フィルター法を使用します。お気に入り
arr.filter(res => res.arrayWithvalue.indexOf('4') !== -1);