【发布时间】:2017-06-15 09:14:17
【问题描述】:
大家好,我是 TypeScript 的新手,也许我没有看到明显的东西,但这是我的问题:
const someSet = new Set();
someSet.add(1)
console.log(someSet[0])
给我 undefined 有人能解释一下为什么我们不能通过索引获得价值吗?我该怎么做?
【问题讨论】:
标签: typescript collections set
大家好,我是 TypeScript 的新手,也许我没有看到明显的东西,但这是我的问题:
const someSet = new Set();
someSet.add(1)
console.log(someSet[0])
给我 undefined 有人能解释一下为什么我们不能通过索引获得价值吗?我该怎么做?
【问题讨论】:
标签: typescript collections set
您需要使用迭代器:
var iterator = someSet.values();
console.log(iterator.next().value);
您可以了解更多here。
当您执行someSet[0] 时,TypeScript 不会抛出,因为您还可以使用索引语法访问属性:
someSet["values"]
【讨论】:
Set 是 ES6 的一部分,而不是 TypeScript。它的属性是唯一值的可迭代集合,尽管没有固定索引。不要依赖索引来访问这些项目,因为它们不是有序的(使用 Array 代替)。如果您想迭代一个集合,您可以随时使用someSet.forEach()。
【讨论】:
【讨论】:
someSet.values().next().value
Set 不应该用于索引集合 =/ 您不能保证您添加的第一个元素将是您根据定义收到的第一个元素