如何使用下划线从最后一个元素到第一个元素遍历元素列表



如何使用_从头到尾遍历列表?每个都用下划线?

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

this在控制台中打印编号5到1。使用下划线_是个好主意吗?每个都取代了传统的for循环?

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

lister.reverse();

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

下划线不给你一种反向迭代集合的方法,只是向前迭代。对数组进行反向操作和对数组中元素的存放方式进行反向操作一样,可以解决这个问题。

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

for (var i = arr.length; i-- > 0; )

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

但是由于您正在使用loDash,您可以通过在each()调用

中将数组包装在clone或cloneDeep中来轻松避免这种情况
var letterArray = [ 'a', 'b', 'c', 'd', 'e' ];
_.each( _.clone(letterArray).reverse(), function(v, i) {
   console.log( i+1 );
});

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

最新更新