代码之家  ›  专栏  ›  技术社区  ›  Stefan Falk

如何将对象列表映射到字典或映射?

  •  1
  • Stefan Falk  · 技术社区  · 6 年前

    childDict 供以后使用。我不只是 尝试

    这个 作品 :

    const childDict = new Map(
      this.voteCards.toArray().map(card => {
        return [card.placeInfo.id, card.placeInfo];
      })
    );
    

    enter image description here

    那么,如何将列表映射到字典或地图呢?

    2 回复  |  直到 6 年前
        1
  •  0
  •   styfle    6 年前

    TypeScript不太适合元组。其他人注意到了这个问题并提交了一个bug 8936

    如果没有上下文类型,元组类型永远不会被推断。

    map.set() 相反。

    var voteCardsArray = [
        { placeInfo: { id: 42, desc: 'stuff 42' } },
        { placeInfo: { id: 65, desc: 'stuff 65' } },
        { placeInfo: { id: 89, desc: 'stuff 89' } },
    ];
    
    const childDict = new Map();
    
    for (let card of voteCardsArray) {
        childDict.set(card.placeInfo.id, card.placeInfo);
    }
    
    // Example usage
    const card42 = childDict.get(42);
    console.log(card42);
        2
  •  0
  •   Alex Turek    6 年前

    这个 Map 类型在这里定义(对于我) https://github.com/Microsoft/TypeScript/blob/master/src/lib/es2015.collection.d.ts#L12

    这就是这些 lib

    "lib": [
      "es2016",
      "es2017.intl",
      "es2017.object",
      "es2017.string",
      "es2017.typedarrays",
      "esnext.asynciterable",
      "dom"
    ]
    

    对你来说,问题可能是那些东西从你的 map