【发布时间】:2019-12-18 04:26:35
【问题描述】:
我有一个 TypeScript 对象数组,其形状基本上如下:
interface MyObject {
id: string
position: number
}
我正在尝试将此数组转换为 id 映射到位置,对于 JSON POST 如下所示:
{
"id1": 1,
"id2": 2,
}
一种方法是使用 ES6 Map:
array.reduce((map, obj) => map.set(obj.id, obj.position), new Map())
这可行,但是将 ES6 Map 转换为 JSON 是有问题的。
我曾尝试将键值对累积为纯对象字面量,但 TypeScript 一直讨厌我尝试的一切,包括 Indexable Types、Object.create({}) 和许多其他想法。
如何从对象数组中提取键值对的纯对象字面量?
【问题讨论】:
-
我认为将数字写成字符串可能会解决您的问题,例如
1-->"1"。 -
Object.create(null)将是正确的Map等效项。
标签: javascript arrays json typescript ecmascript-6