Javascript: `.includes` を使用して、オブジェクトの配列に特定のオブジェクトが含まれているかどうかを確認する 質問する

Javascript: `.includes` を使用して、オブジェクトの配列に特定のオブジェクトが含まれているかどうかを確認する 質問する

私は JavaScript ES6 に少し不慣れなので、以下の内容が期待どおりに機能しない理由を理解するのに苦労しています。

let check = [{name: 'trent'},{name: 'jason'}].includes({name: 'trent'}); 
// expect true - returns false

ありがとう!

ベストアンサー1

includes基本的に、いずれかの要素===が検索している要素であるかどうかを確認します。オブジェクトの場合、===文字通り同じオブジェクト、つまり同じ参照 (メモリ内の同じ場所) にあるオブジェクトを意味し、同じ形状を意味するわけではありません。

var a1 = { name: 'a' }
var a2 = { name: 'a' }

console.log(a1 === a2) // false because they are not the same object in memory even if they have the same data

しかし、実際に配列内にあるオブジェクトを検索すると、次のように機能します。

var a1 = { name: 'a' }
var a2 = { name: 'a' }
var array = [a1, a2]

console.log(array.includes(a1)) // true because the object pointed to by a1 is included in this array 

おすすめ記事