【问题标题】:Unable to delete value from set? [closed]无法从集合中删除值? [关闭]
【发布时间】:2020-01-25 06:46:38
【问题描述】:

let obj = {
  name: 'ajay'
};
let obj1 = {
  name: 'sham'
};
let newSet = new Set();
newSet.add(obj);
newSet.add(obj1);
console.log(newSet.has('name'));
console.log(newSet.delete('ajay'));

【问题讨论】:

  • 对象不是字符串
  • 您似乎误解了Map 数据结构的工作原理。您可以在MDN 上阅读相关信息

标签: javascript ecmascript-6 set


【解决方案1】:

您已将两个对象添加到您的Set

然后,你尝试查找一个字符串 "name",但只要你没有做过这样的事情......

newSet.add("name");

...该调用将返回false。 Set 中的对象有一个键 "name",但 Set 本身没有。

然后,"ayay" 发生同样的问题。

但如果您尝试从Set 中查找或删除您的对象,它会起作用:

let obj = {
  name: 'ajay'
};
let obj1 = {
  name: 'sham'
};

let newSet = new Set();
newSet.add(obj);
newSet.add(obj1);

console.log(newSet.has(obj)); //true
console.log(newSet.delete(obj1)); //true

newSet.forEach(elem => console.log(elem)); //{name:"ayay"}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-19
    • 1970-01-01
    • 2019-04-10
    • 2017-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多