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