我如何迭代使用下劃線_each從頭到尾的列表?如何遍歷從最後一個元素到第一個使用下劃線的元素列表?
lister = ['a', 'c', 'd', 'w', 'e'];
_.each(_.range(lister.length, 0 ,-1), function (val,i) {
console.log(val);
}, lister);
這將在控制檯中打印編號5至1。使用下劃線的_each代替傳統的「for」循環是個好主意嗎?
我如何迭代使用下劃線_each從頭到尾的列表?如何遍歷從最後一個元素到第一個使用下劃線的元素列表?
lister = ['a', 'c', 'd', 'w', 'e'];
_.each(_.range(lister.length, 0 ,-1), function (val,i) {
console.log(val);
}, lister);
這將在控制檯中打印編號5至1。使用下劃線的_each代替傳統的「for」循環是個好主意嗎?
下劃線不會給你一個方法來反向迭代集合,只是前進。 顛倒數組可以解決問題,就像顛倒元素放入數組的方式一樣。
在反向穿越是回落到普通的JavaScript的一個可能的解決方案:
for (var i = arr.length; i-- > 0;)
所有這些問題的答案都將發生變異的陣列中,不他想要做的,除非你想添加其他.reverse什麼()每次運行後。
但由於奧尤使用loDash可以很容易地通過包裝內的克隆或cloneDeep的內部的陣列避免這種情況的每個()調用
var letterArray = [ 'a', 'b', 'c', 'd', 'e' ];
_.each(_.clone(letterArray).reverse(), function(v, i) {
console.log(i+1);
});
這將記錄5,4,3,2,1而不會影響原始數組。
它會改變數組,所以它有嚴重的缺點,只是以相反的順序迭代 – user2846569