[…新集合(数组)]在javascript中是如何工作的?

[…新集合(数组)]在javascript中是如何工作的?,javascript,object,javascript-objects,Javascript,Object,Javascript Objects,我知道Spread运算符,我搜索set,但没有找到解释它是如何工作的 如何设置比较项并查找相似项? 如果设置,则使用循环进行比较 非常感谢任何帮助集合只能包含唯一的值;以下是根据以下公式构成相等值的内容: 由于集合中的每个值都必须是唯一的,因此将检查值是否相等。在早期版本的ECMAScript规范中,这与==操作符中使用的算法不同。具体而言,对于Sets,+0(严格等于-0)和-0是不同的值。但是,ECMAScript 2015规范对此进行了更改。有关详细信息,请参见浏览器兼容性表中的“适用于-

我知道Spread运算符,我搜索set,但没有找到解释它是如何工作的

如何设置比较项并查找相似项? 如果设置,则使用循环进行比较


非常感谢任何帮助

集合只能包含唯一的值;以下是根据以下公式构成相等值的内容:

由于
集合中的每个值都必须是唯一的,因此将检查值是否相等。在早期版本的ECMAScript规范中,这与
==
操作符中使用的算法不同。具体而言,对于
Set
s,
+0
(严格等于
-0
)和
-0
是不同的值。但是,ECMAScript 2015规范对此进行了更改。有关详细信息,请参见浏览器兼容性表中的“适用于
-0
0
的键相等”

NaN
undefined
也可以存储在
集合中
。所有
NaN
值相等(即
NaN
被视为与
NaN
相同,即使
NaN!==NaN

使用传递的数组的。
中还有一个循环,用于解压iterable

但是,检查元素是否已经在
集合
中并不是使用循环来完成的-出于所有目的和目的,您可以将
集合
视为一个只有键而没有值的字典。代码几乎与以下代码相同:

const ages=[26,27,26,26,28,28,29,29,30]
常数temp={};
for(年龄常数){
温度[年龄]=真;
}
const uniqueAges=[];
用于(温度中的常数){
唯一性。推(年龄);
}

控制台日志(唯一性)集合的一个数学属性是包含唯一值的。将数组转换为一个集合,然后将结果分散回一个数组。这是一种获得具有唯一值的数组的惯用方法这是否回答了您的问题?有关
Set
s的信息,请参阅。本质上,集合是唯一值的集合,即不能包含重复值。因此,
newset(ages)
是一个包含
ages
中所有值的集合,必须删除重复项。然后spread操作符将其转换回一个数组-整体效果是从数组中删除重复项。所以在这个操作中使用循环?谢谢你们
const ages = [26, 27, 26, 26, 28, 28, 29, 29, 30]
const uniqueAges = [...new Set(ages)]

console.log(uniqueAges) // [26,27,28,29,30]