比方說,我有一個名爲集合的集合集合。現在,讓我們考慮一下這段代碼。javascript Underscore嵌套循環未定義值
_.each(collections, function(collection){
_.each(collection, function(item){
console.log(item);
}
});
幾次,它打印未定義的值。它似乎在從前一個循環實際設置之前打印項目值。爲什麼它不保留執行順序?
在此先感謝。
比方說,我有一個名爲集合的集合集合。現在,讓我們考慮一下這段代碼。javascript Underscore嵌套循環未定義值
_.each(collections, function(collection){
_.each(collection, function(item){
console.log(item);
}
});
幾次,它打印未定義的值。它似乎在從前一個循環實際設置之前打印項目值。爲什麼它不保留執行順序?
在此先感謝。
是collections
和collection
普通數組?或者他們是Backbone.Collection
?
您描述的行爲不是下劃線中的錯誤。它應該保持你期望的執行順序。這可能是該集合中的數據的問題。
如果你想運行.each
前剝去您的收藏所有未定義的值,可以使用_.compact(array)
(假設他們是普通的JavaScript數組)
_.each(_.compact(collections), function(collection){
_.each(_.compact(collection), function(item){
console.log(item);
}
});
我認爲你說'collection'是一個Backbone集合,在這種情況下'collection.each(function(item){...})'是正確的。 –
都在收藏什麼? _.each的實現不應該給這種行爲。 –
有沒有任何答案可以幫助你?如果是的話,你可以標記正確的答案。如果不是,你能澄清你仍然有疑問的地方嗎? – bejonbee