我有一个对象数组,目前我循环遍历它们并逐个测试它们,但我尝试使我的代码更加简洁易懂。我想天气有一种方法,用javascript或下划线来测试数组中至少有一项是否返回true。
for (var x = 0; x < user.apilog.length; x++) {
//test the conversion
if(conversions[i].conditional(user.apilog[x]) ){
//run if true
break;
}
}
答案 0 :(得分:1)
如果user.apilog
是一个数组,那么您可以使用Array.prototype.some()
:
var found = user.apilog.some(function (item, i) {
return conversions[i].conditional(item);
});
n.b。下划线还提供了一种some
方法,它的工作方式几乎相同,它的优点是它应该适用于类似数组的对象以及实际的数组:
var found = _.some(user.apilog, function (item, i) {
return conversions[i].conditional(item);
});
答案 1 :(得分:0)
使用underscore.js,您只需使用_.some(user.apilog)