首页 > 解决方案 > 带有数字的嵌套数组的类型

问题描述

我似乎无法定义具有可变元素的嵌套数组的实际类型,但采用固定格式,如下所示:

 [
        [ [1,[11181, ...]] ],
        [ [1,[111211, ...]] ],
        [ [1,[1111, 123, 123, 123, 123, 123]] ],
        [ [1,[11711, 1323]] ],
        [ [1,[11117, 123]] ],
        [ [1,[15111, 1243]] ],
        [ [1,[164111, 123]] ],
        [ [1,[1111, 121553]] ],
        [ [1,[1121, 12223]] ],

        ...

    ]

我试过了 :

private readonly _series:[[[number, number[]]]]

但它不会考虑可变大小。

private readonly _series:Array<Array[number, number[]]>

好的,第一级是任意数量的数组的数组: [ [x,x,x,x,x,x], [ ], [ ], [ ], ... ] 接下来是我在那里写 X 的地方,我们有任意数量的这种格式的数组:[number, number[ANY NUMBER OF ITEMS]]

标签: arraystypescript

解决方案


[[number, number[]]][]是你的答案,但这是一个难以理解的混乱。

让我们从内到外来解决它,并给一些名字起别名。

任意长度的数字数组:

[11711, 1323]=number[]

这成为数组中的第二个元素,其中第一个元素是一个数字:

[1,[11711, 1323]]= [number, number[]]--NumTuple为清楚起见调用它

这些NumTuples 始终是数组中的单个元素:

[ [1, [11711, 1323] ] ] =[NumTuple]

你有一个完整的数组:

[NumTuple][]

type NumTuple = [number, number[]];

const numbers: [NumTuple][] = [
        [ [1,[11181, 123, 123, 123, 123, 123]] ],
        [ [1,[111211,  123, 123, 123, 123, 123]] ],
        [ [1,[1111, 123, 123, 123, 123, 123]] ],
        [ [1,[11711, 1323]] ],
        [ [1,[11117, 123]] ],
        [ [1,[15111, 1243]] ],
        [ [1,[164111, 123]] ],
        [ [1,[1111, 121553]] ],
        [ [1,[1121, 12223]] ],
    ]

游乐场链接


推荐阅读