我怎样才能在Javascript中实现这样的多维数组?

时间:2013-07-29 00:50:34

标签: javascript matlab

我正在将MATLAB代码移植到Javascript中,我遇到了一些看起来像这样的代码:

MatrixVar(a, b, c, c, i) = y_var(i);

我怎样才能在Javascript中实现像MatrixVar这样的东西?

3 个答案:

答案 0 :(得分:1)

如果你想要那种确切的语法(带有parens),MatrixVar必须是JavaScript中的一个函数。但它不能成为一个函数,因为你将分配给函数返回的任何东西。

多维数组看起来像arr[a][b][c][c][i],实际上是嵌套数组:

var arr = [];
for(var i=0; i<3; i++) {
    // create new nested arrays
    arr[i] = [];
    for(var j=0; j<3; j++) {
        // populate nested arrays
        arr[i][j] = j;
    }
}

最后,arr将如下所示:

[
    [0,1,2],
    [0,1,2],
    [0,1,2]
]

答案 1 :(得分:1)

您可以使用函数来帮助访问多维数组索引,如下所示:

假设:

var arr = [[[[['foo']]]]];

这个帮手:

Array.prototype.access = function(){
  var last = this;
  for (var a=0; a<arguments.length; a++){
    last = last[arguments[a]];
  }
  return last;
};

如果你想打印“foo”而不是arr[0][0][0][0][0],你可以这样做:

arr.access(0,0,0,0,0); //=> "foo"

答案 2 :(得分:1)

使用库。认真。我无法保证它,但这个看起来不错并且支持n维数组:mathjs。另请参阅此related question