为什么"获取"方法不适用于ES6"Set"?

Sre*_*r P 2 javascript dictionary set ecmascript-6

我在谈论ES6的Set功能.

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

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

但是,为什么可以避免一种get方法,我们可以通过密钥来访问其中的值?

T.J*_*der 5

你错SetMap.Set是一组唯一值,而不是键/值映射.因此没有"得到",因为没有什么可以得到的; 如果你有一个在集合中的值,你已经拥有它.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"));
Run Code Online (Sandbox Code Playgroud)

  • @Sreekumar:`Map`s**中的键是**唯一的. (3认同)