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

Test if any item in array returns true?

本文关键字:是否 返回 true 任何项 数组 测试      更新时间:2023-09-26

我有一个对象数组,目前我循环遍历它们并逐个测试它们,但我试图使我的代码更简洁,更易于遵循。我想知道天气有没有办法,使用 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;
    }
  }

如果user.apilog是一个数组,那么您可以使用Array.prototype.some()

var found = user.apilog.some(function (item, i) {
    return conversions[i].conditional(item);
});

注意:Underscore还提供了一种some方法,其工作方式几乎相同,其好处是它应该适用于类似数组的对象以及实际的数组:

var found = _.some(user.apilog, function (item, i) {
    return conversions[i].conditional(item);
});

使用下划线.js您可以简单地使用_.some(user.apilog)