如何在 TypeScript 中使用键值对实例化数组?

Mar*_*Roy 0 javascript arrays typescript

我想在一个步骤中实例化一组键值对,但我不知道如何。自动编号在我的用例中不起作用。我只能分两步让它工作:

let army: string[] = []; army[100] = 'centuria'; army[1000] = 'legion'; ...

我希望能够做什么,这在大多数其他编程语言中都可用:

let army: string[] = [ 100 => 'centuria', 1000 => 'legion', ... ];

有没有办法在 TypeScript 中做到这一点?

编辑:我不能使用对象,因为我需要将数据传递给需要数组的接口。

Nit*_*mer 6

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"]
Run Code Online (Sandbox Code Playgroud)

操场上的代码

问题是为什么不使用对象作为键/映射来存储这些数据?使用数组(基本上是一个对象本身)有什么不同?