困っているわけではありませんが、他の方法もあるのであればご教授いただきたくての質問です。
二つのオブジェクト配列を比較して「同じ値」をもっているデータだけ抜き出し新たなオブジェクト配列を作成する方法をご存知の方いますでしょうか?
下記のやり方で、出来ているのですが、もっとスマートなやり方はないものかと考え中です。
他の方のやり方は考えなどを参考にしたいので「自分ならこうする!」ぐらいの軽い気持ちでお答えいただけますと幸いです。
JS
1const objA = [ 2 { name: "Taro", age: 18 }, 3 { name: "Hanko", age: 20 }, 4 { name: "Jiro", age: 30 } 5]; 6 7const objB = [ 8 { name: "Suzuki", age: 20 }, 9 { name: "Yamada", age: 20 }, 10 { name: "Tanaka", age: 30 }, 11 { name: "Oguri", age: 31 } 12]; 13 14// objAからageだけの配列を作成 15const agesByObjA = objA.map((obj) => obj.age); 16 17// objB.ageの値が、agesByObjAに含まれるものだけを抽出、含まれていない場合[]が返る 18const notSameAges = objB.filter((obj) => agesByObjA.includes(obj.age) && obj); 19console.log(notSameAges); 20
回答3件
あなたの回答
tips
プレビュー