我可以从另一个_each内部打破一个_each吗?
Can I break an _each from inside another _each?
我是下划线的新手。对于外部_each循环,我希望只计算一次转换。换句话说,我希望它在第一次转换后停止.y++。这可能吗?
_.each(conversions, function(conversion){
_.each(user.apilog, function(event){
if( conversion.conditional(event) ){
conversion.y++;
}
})
})
引用
下划线文档:
同样需要注意的是,每个循环不能被打破 — 要中断,请使用 _.find 代替。
所以不,它不能被打破 - 他们的建议是使用 .find
- 它会破坏你从中返回的第一个truthy
值 - 这对你嵌套每个都没有帮助,所以你可以设置一个标志:
var flag = false;;
_.find(conversions, function(conversion){
_.find(user.apilog, function(event){
if( conversion.conditional(event) ){
conversion.y++;
return flag = true;
}
});
return flag;
});
或者不使用嵌套_.each
循环,一种优雅的方法是使用笛卡尔乘积:
var prod = cartProd(conversations, user.apilog);
_.find(prod, function(item){
return item[0].conditional(item[1]); // will break on find
});
尽管普通的旧 JS for 循环也可以工作并且可能会更快。
相关文章:
- Rails:试图在javascript(Google Charts API)中嵌入一个adv-ruby(each+迭代器
- jQuery .each:不要在最后一个字段中添加逗号
- jQuery .each 循环一次一个
- 如何删除 FOR EACH 循环中的第一个和最后一个值
- .each() 函数只输出数组中的最后一个结果
- Meteor - #each 数组的迭代,每个第 n 项后插入另一个 HTML 元素
- 在 jQuery 中的 .each() 之间放置一个间隔
- jQuery .each()、.find() 和 .append() 只在最后一个节点上工作
- 将 php 数组发送到 jquery ajax 并从该数组创建一个 each 循环
- 如何在 {{#each}} 循环中的元素之间添加分隔符,最后一个元素之后除外
- $(this).getAttribute 在使用 $.each XML Javascript 时不是一个函数
- 向Jquery$.each传递一个闭包
- 为什么只有一个元素触发动作,尽管我使用了.each
- 是否建议在.each()中放入一个函数
- 如何在$.each数组中查找下一个索引项
- 类似于each(),但仅适用于一个选择器
- 将一个变量附加到.each()语句中生成的BX滑块的每个实例
- each()在IE8上不起作用,并给了我一个“;期望应用数组或参数对象”;.如何解决
- 如何在另一个异步`each`方法(NodeJS)内部进行异步方法调用
- 变量未正确赋值,可能存在作用域问题(getJSON()中的each()中有一个开关的函数)