【发布时间】:2016-10-13 21:49:31
【问题描述】:
我正在尝试实现一个函数,该函数接受三个参数(最小值、最大值、步长)并使用步长生成从最小值到最大值的整数范围。第一个整数是最小值,第二个是范围的最大值,第三个是步长。
下面是它应该是什么样子的示例: generateRange(2, 10, 2) 应该返回 [2,4,6,8,10] 的数组。
我正在使用 splice 方法删除数组中大于 max 参数的任何现有元素。
function generateRange(min, max, step) {
var arr = [];
var count = min;
for (var i = 0; i < max / step; i++) {
arr[i] = count;
count = count + step;
arr[i] > max ? arr.splice(i, 1) : arr[i];
}
return arr;
}
console.log(generateRange(2, 10, 2));
每当我console.log 我的结果时,我都会在最后一项之后得到一堆逗号......所以它看起来像这样:[2,4,6,8,10, , , , ]
它似乎没有删除这些项目。我错过了什么?谢谢!
【问题讨论】:
-
我运行代码时一切正常:[2, 4, 6, 8, 10]
-
你为什么不增加直到 (max - max%step)/step 而不是做那种拼接废话
-
为什么在不使用表达式的值时使用三元运算符?只需使用
if声明即可。 -
您的数组一开始是空的。没有要删除的现有元素。
标签: javascript arrays splice