我只是不明白为什么这个函数会返回一个空数组而不是newArr = [1,2,3等],具体取决于数组的长度。
function randomFunction(num) {
var newArr = [];
for(var i = 1; i < num.length; i++) {
newArr.push(i);
}
return newArr;
};
答案 0 :(得分:4)
如果num
应该是新数组的长度,以及值范围的最后一个数字,则必须直接使用它,而不是使用length
(这意味着用于数组):
function randomFunction(num) {
var newArr = [];
for(var i = 1; i <= num; i++) {
newArr.push(i);
}
return newArr;
};
var array = randomFunction(5);
console.log(array);
此外,您可能希望使用<=
代替<
,以防您想要将值开始为1并经过n
,而不是n - 1
。< / p>
答案 1 :(得分:2)
function randomFunction(num) {
var newArr = [];
for(var i = 1; i < num /* number has no length */; i++) {
newArr.push(i);
}
return newArr;
};
Es6替代乐趣:
return new Array(num).fill().map((r, i) => i)
答案 2 :(得分:1)
randomFunction(8);例如
数字根本没有长度。它已经是一个价值。
根本不需要长度属性。只是
for(var i = 1; i < num; i++) {
newArr.push(i);
}
function randomFunction(num) {
var newArr = [];
for (var i = 1; i < num; i++) {
newArr.push(i);
}
return newArr;
};
console.log(randomFunction(8))
答案 3 :(得分:1)
num
已经是一个数字。您不需要使用.lenght
属性
function randomFunction(num) {
var newArr = [];
for(var i = 1; i <= num; i++) {
newArr.push(i);
}
return newArr;
};
randomFunction(5); // [ 1, 2, 3, 4, 5 ]