Has*_*jar 3 javascript object javascript-objects
考虑:
const ages = [26, 27, 26, 26, 28, 28, 29, 29, 30]
const uniqueAges = [...new Set(ages)]
console.log(uniqueAges) // [26,27,28,29,30]
Run Code Online (Sandbox Code Playgroud)
我知道扩展语法。我搜索了set,但没有找到有关它如何工作的解释。
如何设置商品比较并找到相似商品?
如果设置,则在比较中使用循环。
Set只能包含唯一值;根据MDN,以下是等值的构成:
由于 中的每个值都
Set必须是唯一的,因此将检查值是否相等。在 ECMAScript 规范的早期版本中,这与运算符中使用的算法并不基于相同的算法===。具体来说,对于Sets,+0(严格等于-0) 和-0是不同的值。然而,ECMAScript 2015 规范对此进行了更改。有关详细信息,请参阅浏览器兼容性表中的“-0和的键相等”。0
NaN并且undefined还可以存储在Set. 所有NaN值都是相等的(即被NaN认为与 相同NaN,即使NaN !== NaN)。
Set使用传递数组的可迭代接口创建 时存在隐式循环。中还有一个循环...,它解压一个可迭代对象。
然而,检查元素是否已经存在Set并不是使用循环来完成的 - 出于所有意图和目的,您可以将 a 视为Set只有键而没有值的字典。代码几乎相同:
const ages = [26, 27, 26, 26, 28, 28, 29, 29, 30]
const temp = {};
for (const age of ages) {
temp[age] = true;
}
const uniqueAges = [];
for (const age in temp) {
uniqueAges.push(age);
}
console.log(uniqueAges);Run Code Online (Sandbox Code Playgroud)
我故意写这种“低科技”的方式来说明正在发生的事情;请注意,对象键始终是字符串,因此结果将被字符串化。使用Map或同时将年龄存储为值将使它在效果上与OP的代码更加相似,但为了说明起见,我想保持简单。
| 归档时间: |
|
| 查看次数: |
26526 次 |
| 最近记录: |