【问题标题】:How to get multidimensional array from JSON in Typescript?如何在 Typescript 中从 JSON 获取多维数组?
【发布时间】:2022-11-18 10:09:27
【问题描述】:

这是一个 JSON 数组。

var cars = {
    "cars": {
        "john": [],
        "alex": [
            "ford"
        ],
        "hilton": [],
        "martin": [
            "ford",
            "ferrari"
        ],
        "david": [
            "Lamborghini"
        ],
        ...
    }

}

我想从中获取数组。我应该如何在 Typescript 中实现它? 我尝试了几件事,但都没有奏效。 还有一个只有名称的 JSON 数组,如下所示,但我不知道如何使用它。

var names = { 
    "names": [
        "john",
        "alex",
        "hilton",
        "martin",
        "david",
        ...
    ]
}

我试过像下面这样,但它不起作用。


let aryCars: string[][] = [];
names.map((name: string) => {
    cars[name].map((car: string) => {
        aryCars[name].push(car);
    });
});

但是出现以下错误。

Element implicitly has an 'any' type because index expression is not of type 'number'.

如果你知道怎么做,请告诉我。 谢谢。

【问题讨论】:

    标签: arrays json typescript multidimensional-array


    【解决方案1】:

    数组不能有字符串索引。请改用对象类型,例如:

    let aryCars: {
        [key: string]: string
    } = {};
    

    然后,您可以使用数组表示法访问该对象。

    【讨论】:

      【解决方案2】:

      可能是由于这一行:

      aryCars[name].push(car);
      

      您已将 aryCars 声明为一个数组,它隐式具有数字索引,但您正在使用字符串 name 进行索引。

      也许你真的希望 aryCars 看起来像这样:

      let aryCars: {[key:string]: string[]} = {};
      

      这是一个具有字符串键和字符串数组作为值的对象。

      【讨论】:

        猜你喜欢
        • 2018-11-21
        • 2016-02-13
        • 1970-01-01
        • 2014-09-20
        • 2018-06-23
        • 2022-07-07
        • 1970-01-01
        • 2023-03-29
        • 2016-02-12
        相关资源
        最近更新 更多