在javascript中是否有相当于ruby的任何方法?

时间:2015-06-23 01:40:48

标签: javascript arrays ruby iteration

对于数组而言,是否有相当于ruby的any方法,但是在javascript中?我正在寻找这样的事情:

arr = ['foo','bar','fizz', 'buzz']
arr.any? { |w| w.include? 'z' } #=> true

我可以使用javascript的forEach方法获得类似的效果,但它需要遍历整个数组而不是短路时找到匹配值的方式就像ruby' s {{1方法呢。

any

如果我真的想要短路,我可以使用for循环,但它真的很难看。这两种解决方案都非常冗长。

var arr = ['foo','bar','fizz', 'buzz'];
var match = false;
arr.forEach(function(w) {
  if (w.includes('z') {
    match = true;
  }
});
match; //=> true

有什么想法吗?

2 个答案:

答案 0 :(得分:7)

您正在寻找Array.prototype.some方法:

var match = arr.some(function(w) {
   return w.indexOf('z') > -1;
});

答案 1 :(得分:0)

arr.filter( function(w) { return w.contains('z') }).length > 0
相关问题