javascript es6 set feature

javascript es6 set feature

本文关键字:feature set es6 javascript      更新时间:2023-09-26

我正在使用Set,我可以在其中存储唯一的原始值,但我不能在其中存储基于其属性值的唯一对象。

下面是我的示例代码:
"use strict"
var set = new Set();
var student1 = {
    "name":"abc",
    "id":1
}
var student2 = {
    "name":"xyz",
    "id":1
}
var student3 = {
    "name":"def",
    "id":3
}
set.add(student1);
set.add(student2);
set.add(student3);
console.log(set);

我想在集合中添加学生对象基于他们的ID值,即两个对象将是相同的,如果他们的ID的值是相同的

对于您的目的,使用Map可能更好。

const map = new Map()
const student1 = {
  "name":"abc",
  "id":1
}
const student2 = {
  "name":"xyz",
  "id":1
}
const student3 = {
  "name":"def",
  "id":3
}
map.set(student1.id, student1);
map.set(student2.id, student2);
map.set(student3.id, student3);
console.log(map);

ES6 Set对象使用值相等,这几乎意味着===检查(与Javascript一样,这里有一点细微差别)。

正如其他人所建议的,也许您真正想要的是一个通过id属性的Map