以单行运行reverse for loop

时间:2013-12-19 06:38:31

标签: javascript arrays loops underscore.js reverse

我想运行一个反向for循环,每个项目作为参数传递给一个函数。 我可以使用underscore

var myItems = [1,2,3,4,5];
_.each(myItems, print); //It calls print in sequential order but I want reverse order

function print(value) {
  value = value + 1;
  // Some other modifications
  console.log(value);
}

现在,我需要做同样的事情,但我想运行反向循环。我知道我可以写这样的循环

for (var i = myItems.length - 1; i >= 0; i--) { ... }

我正在寻找简洁的代码......像_.reverseLoopmyItems.reverse这样的东西。 underscoreArray.prototype中是否还有其他API可以反向运行循环并为每个项执行回调?

2 个答案:

答案 0 :(得分:5)

Array.prototype.reverse()

  

reverse()方法将数组反转到位。第一个数组   元素成为最后一个,最后一个成为第一个。

所以你可以反转你的数组并使用:

_.each(myItems.reverse(), print)

或者

_.each(myItems.slice().reverse(), print)

答案 1 :(得分:0)

您可以将underscore.js中的数组反转为

.reverse()

所以你可以使用

_.each(myItems.reverse(), print)

js Bin Example