use*_*382 1 javascript arrays recursion multidimensional-array
想象一下,我有一个调用的函数multi0(Array)
,我希望它将一个数组作为参数.
如果我这样做multi0([5])
,它将返回一个看起来像的数组
[0,0,0,0,0]
Run Code Online (Sandbox Code Playgroud)
如果我这样做multi0([5,3])
,它将返回一个看起来像的数组
[
[0,0,0],
[0,0,0],
[0,0,0],
[0,0,0],
[0,0,0]
]
Run Code Online (Sandbox Code Playgroud)
我用递归尝试了这个,但它没有用.你是如何实现的?
像这样:
function multi0(arr) {
if (arr.length == 0) {
return 0;
} else {
var children = arr.slice(1);
var result = [];
for (var i = 0; i < arr[0]; i++) {
result.push(multi0(children));
}
return result;
}
}
Run Code Online (Sandbox Code Playgroud)
或者稍长但更有效:
function multi0(arr) {
var result = [];
if (arr.length == 1) {
for (var i = 0; i < arr[0]; i++) {
result.push(0);
}
} else {
var children = arr.slice(1);
for (var i = 0; i < arr[0]; i++) {
result.push(multi0(children));
}
}
return result;
}
Run Code Online (Sandbox Code Playgroud)