我在一个函数,其中我从父容器中获取multidimentional数组。获取的数组并不总是具有相同的尺寸(可以是1D,2D,3D,4D,...)。JS multidimentional数组修改值
我有参数1D数组包含坐标和值。
function(coordinates_array, value) {
var muti_dim_array = getArrayByName(another_param);
}
不幸的是,我不能这样做
multi_dim_array[coordinates_array[0]][coordinates_array[1]][...]
因为尺寸不总是相同的。
我可以做一个长度为coordinates_array的开关盒,但这会很糟糕,因为我的multi_dim_arrays可能在1D和10D之间。
我的尝试:
function(coordinates_array, value) {
var multi_dim_array = getArrayByName(another_param);
//Transform "[1, 2, 3]" in "[1][2][3]"
var coord = JSON.stringify(coordinates_array).replace(/,/g, '][');
var array_value = eval('multi_dim_array'+coord);
array_value = value;
}
但它不工作,因为
multi_dim_array[1][2][3]
没有更新。
这:
eval('multi_dim_array'+coord) = value;
也不起作用。
如何以通用的方式更新多维数组(具有不同的维度),给定要在1d数组中修改的坐标以及新值?
例子:
我可以有参数
coordinates_array = [1, 5, 6, 7]
coordinates_array = [2, 3]
coordinates_array = [8]
,我想这样做
multi_dim_array[1][5][6][7] = value
multi_dim_array[2][3] = value
multi_dim_array[8] = value
所有在的代码尽可能少线(没有开关的情况下检查coordinates_array长度)。
显示数组的情况下,请 – cpugourou
我可以例如coordinate_array = [1,2,3,4,5,6]或[1,2,3] 我想multi_dim_array [1] [2] [ 3] [4] [5] [6] =值或multi_dim_array [1] [2] [3] =值 –