比方说,我有一个名为集合的集合集合。现在,让我们考虑一下这段代码。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