filterメソッドがうまく機能しない
jsonの中にarrayがあって、それを比較したいのですが、配列としてincludesしているため正しい結果が返ってこなくてこまっています。
for文みたいにi+1みたいなことをarrに対して行うことができれば実現出来そうですがそのようなことは出来ますでしょうか?
js
1const arr = [1,3]; 2const obj = [ 3 {id: 1, quantity: 1, name: 'product1', sample: [0,4]}, 4 {id: 2, quantity: 3, name: 'product2', sample: [1,2]}, 5 ] 6console.log(obj.filter(e => e.sample.includes(arr))) 7// => []
指摘事項への追記
期待している結果
sampleの中身に対してarrの値がが含まれていれば該当jsonを返します。
=> {id: 2, quantity: 3, name: 'product2', sample: [1,2]}
抽出条件を日本語で書いてもらえますか?
「うまくできない」とは「何をしたときに」「どうなると思って」「どうなったのか」を、出ているエラーなどと併せて、具体的に記述されたほうが回答を得られやすいと思います。
今、追記させていただきましたが、objの中にある下記結果を返したいと思いfilterをしたいのですが、includesのメソッドでは配列の中身までみてくれないため空の結果が返ってきてしまいます。
それを下記のような結果を返すロジックをご教示いただきたいです。
=> {id: 2, quantity: 3, name: 'product2', sample: [1,2]}
sampleプロパティ自体が無いものもあるんですよね?
回答3件
あなたの回答
tips
プレビュー