javascript es6设置功能

时间:2016-10-13 05:50:54

标签: javascript node.js

我正在使用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的值相同,则两个对象将相同。

2 个答案:

答案 0 :(得分:0)

最好使用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);

答案 1 :(得分:0)

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

正如其他人所建议的那样,你真正想要的是id属性的地图。