测试数组中的任何项是否返回true?

时间:2014-12-09 13:26:06

标签: javascript underscore.js

我有一个对象数组,目前我循环遍历它们并逐个测试它们,但我尝试使我的代码更加简洁易懂。我想天气有一种方法,用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;
    }
  }

2 个答案:

答案 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)

即可