【问题标题】:TypeScript Set<> collection getting value via index [duplicate]TypeScript Set<> 集合通过索引获取值 [重复]
【发布时间】:2017-06-15 09:14:17
【问题描述】:

大家好,我是 TypeScript 的新手,也许我没有看到明显的东西,但这是我的问题:

const someSet = new Set();
someSet.add(1)
console.log(someSet[0])

给我 undefined 有人能解释一下为什么我们不能通过索引获得价值吗?我该怎么做?

【问题讨论】:

    标签: typescript collections set


    【解决方案1】:

    您需要使用迭代器:

    var iterator = someSet.values();
    console.log(iterator.next().value);
    

    您可以了解更多here

    当您执行someSet[0] 时,TypeScript 不会抛出,因为您还可以使用索引语法访问属性:

    someSet["values"]
    

    【讨论】:

      【解决方案2】:

      Set 是 ES6 的一部分,而不是 TypeScript。它的属性是唯一值的可迭代集合,尽管没有固定索引。不要依赖索引来访问这些项目,因为它们不是有序的(使用 Array 代替)。如果您想迭代一个集合,您可以随时使用someSet.forEach()

      【讨论】:

        【解决方案3】:

        可能是因为Set 没有索引器。

        你可以通过这样做获得价值:

        let val = [...mySet][0];
        

        【讨论】:

        • 如果你想使用这种方法,使用迭代器中的第一个元素而不是访问所有值不是更好吗? someSet.values().next().value
        • 0 索引为例。您可以使用这种方法来访问任何元素。
        • 同意。仍然 Set 不应该用于索引集合 =/ 您不能保证您添加的第一个元素将是您根据定义收到的第一个元素
        • 我完全同意。
        猜你喜欢
        • 1970-01-01
        • 2018-01-07
        • 1970-01-01
        • 2017-05-28
        • 2012-10-13
        • 1970-01-01
        • 2017-12-04
        • 1970-01-01
        • 2020-01-02
        相关资源
        最近更新 更多