我正在尝试定义一个包含3个整数参数的函数范围:开始,结束和步骤。
该函数应该从开始到结束逐步返回一个数字数组。
这似乎很简单,但是我的代码不正确:
const range = function(start, end, step) {
for (let i = start; i <= end; i += step);
return (start, end, step);
}
console.log(range(0, 10, 2));
为什么我的代码不正确?
谢谢。
答案 0 :(得分:2)
您的for
循环没有执行任何操作。特别是,它不是在创建数组。您只是想返回3个输入,而不是应该生成的数字数组。但是,由于要将它们与逗号运算符组合在一起,因此只需返回最后一个参数(请参见What does a comma do in JavaScript expressions?)。
您的循环需要一个将当前元素添加到数组的主体。
const range = function(start, end, step) {
const result = []
for (let i = start; i <= end; i += step) {
result.push(i);
}
return result;
}
console.log(range(0, 10, 2));
答案 1 :(得分:1)
创建一个数组,并使用现有的for循环将值推入该数组,然后返回该数组。我给出了for循环和while循环来完成任务。
// using a for loop
const range = function(start, end, step) {
let arr = [];
for (i = start; i <= end; i += step){
arr.push(i);
};
return arr;
}
console.log("Using a for loop: ", range(0, 10, 2)); // gives [ 0, 2, 4, 6, 8, 10]
// using a while loop
const range2 = function(start, end, step) {
let arr = [];
let i = start
while (i <= end){
arr.push(i);
i += step;
};
return arr;
}
console.log("Using a while loop: ", range2(0, 10, 2)); // gives [ 0, 2, 4, 6, 8, 10]