为什么我可以将相同的数组添加到 Set 中?

Why I can add into Set the same arrays?

我可以将完全相同的数组添加到 Set 中,但 Set 不能添加已存在于该 Set 中的元素。 Set 必须只存储唯一值。但是为什么我可以添加这些?

让 s = new Set();
s.add([1]);
s.add([1]);
s.add([1]);

console.log(s); //Set(3) {Array(1), Array(1), Array(1)}

ES6 中 Set 对象的问题在于 相等性检查是基于比较插入对象的实际引用 。因此,当插入具有完全相同内容的多个数组时,它会将它们视为不同的,因为底层对象引用不同。其他对象也是如此。另一方面,基元是根据它们的值进行比较的。