JavaScript で多次元配列の要素を選択する方法はありますか。深さ/ランク/次元は可変であり、キーはインデックスの配列によって与えられます。そのため、考えられるすべての次元の深さを個別に処理することはできません。具体的に言えば、次のようなスイッチケースを取り除きたいです:
/**
* set tensor value by index
* @type {array} indices [ index1, index2, index3 ] -> length == rank.
* @type {string} value.
*/
tensor.prototype.setValueByIndex = function( indices, value ) {
var rank = indices.length;
switch(rank) {
case 0:
this.values[0] = value;
break;
case 1:
this.values[indices[0]] = value;
break;
case 2:
this.values[indices[0]][indices[1]] = value;
break;
case 3:
this.values[indices[0]][indices[1]][indices[2]] = value;
break;
}
}
this.valuesは多次元配列です。
次のようなものが得られるように:
/**
* set tensor value by index
* @type {array} indices, [ index1, index2, index3 ] -> length == rank
* @type {string} value
*/
tensor.prototype.setValueByIndex = function( indices, value ) {
var rank = indices.length;
this.values[ indices ] = value;
}
前もって感謝します!