我在一個函數,其中我從父容器中獲取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] =值 –