使用数组方法时返回方括号的函数
Function Returning Square Brackets When Using Array Methods
我刚刚开始了一本名为Eloquent JavaScript的书的第4章的练习。该练习要求我执行以下操作:
"编写一个范围函数,它接受两个参数,开始和结束,以及 返回一个数组,其中包含从开始到 (和 包括)结束。
但是,当我编写以下代码时:
function range(start, end) {
array = [];
for (var i = start; i <= end; i += 1) {
array.push(i);
}
return array;
}
console.log(range(5, 2));
它返回方括号 ( [] )。有谁知道问题可能是什么?谢谢一堆!
您以错误的顺序传递范围索引。你不能从 5 到 2,你需要从 2 到 5
range(2,5)
返回方括号表示列表为空。这可能是也可能不是期望的结果。
为了稍微扩展您的问题 - 您可以使用更灵活且能够生成降序列表的范围函数。例如,请参阅下面的小提琴,或在此小提琴中。
function range(start, end) {
array = [];
// Determine order
var delta = (start < end)? 1 : -1;
for (var i = start; num_compare(i,end,delta); i += delta) {
array.push(i);
}
return array;
}
function num_compare(a,b, delta) {
if(delta == 0) { return false; } // No change? Avoid infinite loop.
if(delta < 0) { return a >= b; } // Descending. Continue while a>=b
if(delta > 0) { return a <= b; } // Asecending. Continue while a<=b
}
var answer = range(5,2);
console.log(answer);
document.getElementById("answerswer").innerHTML = answer.toString();
现在传入range(5,2);
将产生 [5,4,3,2] 的(可能需要的)列表。
值得注意的相关问题/答案包括:for 循环中的反转顺序,比较运算符
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 将函数的上下文应用于javascript变量
- 如何在JavaScript中将字符串转换为函数引用
- 用嵌套函数和默认函数定义函数
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 无法导出函数expressjs/requestjs中的变量
- 函数参数中的数据与指定变量之间的任何性能差异
- JQuery合并了keyup和focusout两个函数
- ES6构造函数返回基类的实例
- 使用方括号访问插件原型函数
- 为什么在 JavaScript 函数调用中使用方括号?jquery.
- JavaScript:我可以使用方括号([])运算符作为函数吗?
- 函数语法中的方括号在 MDN 上是什么意思?
- 奇怪地使用方括号来调用函数
- 在调用函数时不熟悉方括号的用法
- 节点.js带方括号的全局变量和函数 - 为什么这样做
- 方括号中的Node.js函数语法[function]或[function:isBuffer]
- 函数调用前的方括号
- JavaScript方括号函数调用
- 使用数组方法时返回方括号的函数