如何使用下划线迭代从最后一个元素到第一个元素的元素列表?

sco*_*lta 9 underscore.js

如何在下划线中使用_.each从头到尾遍历列表?

lister = ['a', 'c', 'd', 'w', 'e'];
_.each(_.range(lister.length, 0 ,-1), function (val,i) {
   console.log(val);
}, lister);
Run Code Online (Sandbox Code Playgroud)

这在控制台中打印数字5到1.使用下划线的_.each代替传统"for"循环是一个好主意吗?

Mat*_*tra 10

在迭代之前,只需反转数组

lister.reverse();
Run Code Online (Sandbox Code Playgroud)

要回答你的_.each()VS for loop的问题,在这里看看.

  • 它将改变数组,因此它具有以相反顺序迭代的严重缺点 (13认同)

Ale*_*huk 8

Underscore没有给你一种方法来反向收集一个集合,只是前进.反转数组解决了问题,就像反转元素放入数组的方式一样.

反向遍历的一种可能解决方案是回归普通Javascript:

for (var i = arr.length; i-- > 0; )
Run Code Online (Sandbox Code Playgroud)