JSONで作業していて、配列を繰り返し処理したいだけで、探している値が返されます。たとえば、オブジェクトの配列があり、それらのオブジェクトのそれぞれに特定の書籍に関する情報がある場合、その配列の各オブジェクトに対してどのように反復処理を行い、一致するオブジェクトのみを返すことができますか?配列全体を反復処理し、一致した値のみを返しますか?
私のようなので、マップを使用してみました(私はそれがする必要があるように動作しません):
// books is from my imported JSON object
const favoriteBook = books.map((book) => {
if (book.title == this.props.params.id) {
return book;
}
});
console.log(favoriteBook)
しかし、私は(favoriteBook)にconsole.logとき、私は見ています一致する1つのオブジェクトが返された配列と、一致しないすべてのものに対して 'undefined'が返されます。どのようにして試合を見つけ、ただそれを返すとすぐに止めることができますか?可能であれば( '?')または同様の方法で 'フィルタ'を使ってこれを行う方法をお聞かせください。
ありがとうございました。
あなたは '.map()'ではなく '.filter()'メソッドを探しています。 – Pointy
また、コールバックの 'this'の値はコールバックの*外部*と同じではありません。 – Pointy