我不明白我的for循环
I don't understand my for loop?
我的问题可能很傻,所以提前道歉。我的指令是构建一个函数,它在一个函数队列上迭代。答案在下面....在puzzlers数组下面。
谁能解释一下为什么for循环中的命令是input = queue.shift()(input); ?我明白我必须使用shift方法清空队列。这个练习一开始就让我感到困惑,但是创建input = queue.shift()(input);对我来说仍然很陌生。任何基本的解释将是非常感激的。如果你需要更多的信息,请告诉我.....提前谢谢你。
var puzzlers = [
function ( a ) { return 8*a - 10; },
function ( a ) { return (a-3) * (a-3) * (a-3); },
function ( a ) { return a * a + 4; },
function ( a ) { return a % 5; }
];
var applyAndEmpty = function( input, queue ) {
var length = queue.length;
for(var i = 0; i<length; i++){
input = queue.shift()(input);
}
return input;
};
alert(applyAndEmpty(2, puzzlers));
queue
是一个数组,因此queue.shift()
从数组中取出第一项并返回它。
现在,由于queue
是保存函数,您告诉queue
开始时的函数以input
为参数运行。
举一个更具体的例子,假设queue
中的第一项是一个名为function1
的函数。您可以认为queue.shift()
一旦求值就会被function1
取代,因此queue.shift()(input);
变成了function1(input);
相关文章:
- 为什么JavaScript在for循环为3时向所有4发出警报
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 我的javascript for循环不起作用
- For循环冻结Javascript
- 如何在for循环中添加事件侦听器
- 双“for”循环(循环)
- javascript for循环不起作用
- for循环中的javascript if语句找不到==
- Javascript在for循环中等待处理请求
- For循环在Jquery中只运行一次
- 如何在for循环中使用计数器
- for循环中的JavaScript闭包
- 为什么我们在ES2015中需要一个新的for循环结构,而我们已经有了for、forEach
- For循环在调用时未运行
- 如何使用for循环添加所有按钮'单击事件
- 如何更改在for循环中生成的圆的位置
- 为什么这个For循环会使浏览器实验室崩溃
- 为什么我使用javascript获得了一个无限的for循环
- 在for循环中使用多维数组设置google.maps.Marker图标
- 如何在angularJS中运行for循环而不使用html标记