我正在将MATLAB代码移植到Javascript中,我遇到了一些看起来像这样的代码:
MatrixVar(a, b, c, c, i) = y_var(i);
我怎样才能在Javascript中实现像MatrixVar
这样的东西?
答案 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。