【问题标题】:Why “get” method is not there for a ES6 “Set”?为什么 ES6 “Set” 没有“get” 方法?
【发布时间】:2017-08-27 08:57:26
【问题描述】:

我说的是 ES6 的 Set 函数。

let set = new Set();
set.add("1", { Name: "myName", Age: 13 })
set.add("2", { Name: "yourName", Age: 14 })
console.log(set);

要获得一些价值,您必须遍历集合并获得价值。当然我们可以在循环之前使用has方法进行验证。

但是,避免使用get 方法的原因可能是什么?在这种方法中我们可以传递一个密钥来访问该方法的值?

【问题讨论】:

  • 获取集合的已知元素的目的是什么?
  • 我已经更改了相关示例。我们不能用 set 作为字典吗?如果是,我的意思是set.get("2") 给出的结果为{ Name: "yourName", Age: 14 }
  • 你在想Map吗?
  • Map 我们可以使用....但不是唯一键...对吗?..我可以使用地图...我只是在想Set 可能有更好的性能在检索数据时,因为键可以是唯一的。
  • A Set 不等同于字典,它只是一个集合。

标签: javascript dictionary ecmascript-6 set


【解决方案1】:

您将Set 误认为MapSet 用于一组唯一值,而不是键/值映射。因此没有“得到”,因为没有什么可得到的;如果你有一个在集合中的值,你已经有了它。 Map 用于键/值映射。

您的示例代码只是将"1""2" 添加到集合中,而不是您作为第二个参数传递的对象(Set.prototype.add 完全忽略了第二个参数)。

Map,当然,确实get

let map = new Map();
map.set("1", { Name: "myName", Age: 13 })
map.set("2", { Name: "yourName", Age: 14 })
console.log(map.get("1"));

【讨论】:

  • 我开始了解 map,但只是想到 Set 在检索数据方面可能有更好的性能,因为键可以是唯一的。所以如果Set 不能像字典一样存储Map,那么我只能使用Map
猜你喜欢
  • 1970-01-01
  • 2014-12-11
  • 2017-10-18
  • 2012-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多