我想在一个步骤中实例化键值对数组,但我不知道如何。自动编号在我的用例中无法使用。我只能通过两个步骤使其工作:
let army: string[] = [];
army[100] = 'centuria';
army[1000] = 'legion';
...
我想做的是在大多数其他编程语言中可用的:
let army: string[] = [
100 => 'centuria',
1000 => 'legion',
...
];
有什么办法在打字稿中执行此操作?
编辑: 我无法使用对象,因为我需要将数据传递到期望数组的接口。
JavaScript中没有这样的功能,但是您可以轻松创建它:
function arrayFactory<T>(obj: { [key: number]: T }): T[] {
let arr = [];
Object.keys(obj).forEach(key => {
arr[parseInt(key)] = obj[key];
});
return arr;
}
let arr = arrayFactory({ 100: "centuria", 1000: "legion" });
console.log(arr); // [100: "centuria", 1000: "legion"]
(操场上的代码)
问题是为什么不使用对象作为键/地图存储此数据?使用数组(基本上是对象本身)有何不同?