JavaScript - 控制二维动态数组

DeL*_*eLe 7 javascript arrays multidimensional-array

我想在javascript中初始化一个二维动态数组,它不限制元素(也许)就像

var dynamic = new Array ();
dynamic[] = new Array ();
Run Code Online (Sandbox Code Playgroud)


之后我想为特殊数组添加值

dynamic[id].push(2); // id = 3, dynamic[3][0] = 2
...
dynamic[id].push(3); // id = 3, dynamic[3][1] = 3
...
dynamic[id].push(5); // id = 5, dynamic[5][0] = 5
Run Code Online (Sandbox Code Playgroud)

这是可能的?我怎么能这样做,谢谢

Ing*_*ürk 5

你可以做的一件事是这样的(jsfiddle):

var dynamic = [];

dynamic.push = function (id, value) {
    if (!this[id]) {
        this[id] = [];
    }

    this[id].push(value);
}

dynamic.push(3, 2);
dynamic.push(3, 3);
dynamic.push(5, 5);
Run Code Online (Sandbox Code Playgroud)

当然,这可以做得更好,但它得到了重点.就个人而言,我会为此写一堂课.

编辑:另外,请记住,这会创建一个具有很多undefined值的数组,在阅读时需要注意这些值.此外,具有这样的孔的阵列具有不良性能(如果这将是一个问题 - 对于少数,甚至几百个值,它将无关紧要).