10

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

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

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

4

3 回答 3

10

只是在迭代之前反转数组?

lister.reverse();

要回答您的_.each()vsfor loop问题,请查看此处

于 2013-05-27T05:15:07.790 回答
8

下划线没有给你一种反向迭代集合的方法,只是向前。反转数组可以解决问题,就像反转元素放入数组的方式一样。

一种可能的反向遍历解决方案是回退到纯 Javascript:

for (var i = arr.length; i-- > 0; )
于 2015-06-15T18:17:59.710 回答
3

所有这些答案都会改变他不想做的数组,除非你想在每次运行它之后添加另一个 .reverse() 。

但是由于 oyu 使用的是 loDash,因此您可以通过将数组包装在一个 clone 或 cloneDeep 中的 each() 调用中来轻松避免这种情况

var letterArray = [ 'a', 'b', 'c', 'd', 'e' ];
_.each( _.clone(letterArray).reverse(), function(v, i) {
   console.log( i+1 );
});

这将记录 5、4、3、2、1 而不会影响原始数组。

于 2017-06-16T10:08:52.737 回答