【发布时间】:2020-03-20 07:04:24
【问题描述】:
我原以为创建任意大小的多维 JavaScript 数组的函数会非常方便。但我还没有找到一个。所以我创建了自己的。
在这种情况下使用 array.map 会起作用吗?如果是这样,我想它看起来会不那么“合乎逻辑”。
//like the BASIC DIM :) use: var multiDimensionalArray = DIM([7,8,9])
function DIM(arrayOfDimensions) {
let localArrayOfDimensions = arrayOfDimensions.slice(); //must copy array as scope is global for arrayofdimentions
let returnArray = [];
if (localArrayOfDimensions.length === 0) {
return undefined; //no more dimensions
}
let arraySize = localArrayOfDimensions.shift(); // size of current dimension
for (let arrayPointer = 0 ; arrayPointer < arraySize ; arrayPointer++){
//for each array pointer in this array dimension, recusivly call DIM, and return and assign the value
returnArray[arrayPointer] = DIM( localArrayOfDimensions );
}
return returnArray; //return here if there are still more array dimensions
}
var test = DIM([5,3,2]);
test[4][2][1] = 'aaaasss';
var t = test[4][2][1];
【问题讨论】:
-
在这种情况下使用 array.map 可以吗?
-
我尝试使用array.map 失败了几次。我想我对某些功能有阅读障碍,地图似乎就是其中之一。你能像这样的函数一样在递归场景中使用 array.map 吗?
标签: javascript arrays function multidimensional-array