我正在尝试使用javascript进行递归,而我无法确定如何递归执行此操作。例如,fillArray(num, len)
num = 5
和len = 3
将返回[5,5,5]
。老实说,我被困住了,我无法在这方面取得进展。它并不多,但这就是我所拥有的。有人可以帮忙吗?
var fillArray = function(num, len) {
var list = [];
if (length === 0) {
return [];
}
return list.concat(function(value, length--));
}
答案 0 :(得分:2)
这可以更容易迭代地完成
var fillArray = function(num, len) {
var result = [];
for (var i = 0; i < len; i++) {
result.push(num);
}
return result;
}
如果你真的必须使用递归,这应该可行
var fillArray = function(num, len) {
if (len === 0) {
return [];
}
return [num].concat(fillArray(num, len - 1));
}
答案 1 :(得分:0)
你可以这样做,但说实话并不是很有效。
function arrayFill(num, length){
if(length === 0) return [];
return [].concat(num, arrayFill(num, length - 1));
}
console.log(arrayFill(5, 3));
答案 2 :(得分:0)
这样的事情:
[ec2-user@ip-172-31-16-150 ~]$ sudo service docker start
[ec2-user@ip-172-31-16-150 ~]$ docker --version
Docker version 1.9.1, build a34a1d5/1.9.1
[ec2-user@ip-172-31-16-150 ~]$ docker-compose --version
docker-compose version: 1.4.2
[ec2-user@ip-172-31-16-150 ~]$ docker-compose -p docker -f my-compose.yml up -d
Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?
If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
[ec2-user@ip-172-31-16-150 ~]$ sudo docker-compose -p docker -f my-compose.yml up -d
sudo: docker-compose: command not found
[ec2-user@ip-172-31-16-150 ~]$ echo $DOCKER_HOST
答案 3 :(得分:0)
var fillArray = function(num, len) {
var result = [];
if (len > 1) result.push(fillArray(num, len - 1));
result.push(num);
return result;
}
x = fillArray(5, 3);
答案 4 :(得分:0)
示例使用递归:
function fillArray( num, length) {
var array;
if( length) {
array = fillArray( num, length-1);
array.push( num);
return array;
}
else {
return [];
}
}
递归函数调用自身,长度递减1,直到长度为零。然后它返回一个空数组。在返回路径中,在递减递减的每个级别,数字的值被推送到数组上。
递归通常需要一个条件来阻止进一步的递归(这里length - 1
达到零),并返回递归调用的值(这里是array
的值)。