Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有一个ruby等价于javascript';s Array.prototype.every方法?_Javascript_Arrays_Ruby - Fatal编程技术网

是否有一个ruby等价于javascript';s Array.prototype.every方法?

是否有一个ruby等价于javascript';s Array.prototype.every方法?,javascript,arrays,ruby,Javascript,Arrays,Ruby,我正在寻找一种可以与javascript的方法相媲美的ruby方法。在javascript中,如果每个元素都导致回调返回true,则它将迭代数组并返回true。它的一个优点是,如果其中一个元素没有通过测试,它就不需要迭代整个数组。相反,它会短路并返回false function isBigEnough(element) { return element >= 10; } [12, 5, 8, 130, 44].every(isBigEnough); //=> false [1

我正在寻找一种可以与javascript的方法相媲美的ruby方法。在javascript中,如果每个元素都导致回调返回true,则它将迭代数组并返回true。它的一个优点是,如果其中一个元素没有通过测试,它就不需要迭代整个数组。相反,它会短路并返回false

function isBigEnough(element) {
  return element >= 10;
}
[12, 5, 8, 130, 44].every(isBigEnough);   //=> false
[12, 54, 18, 130, 44].every(isBigEnough); //=> true
我知道我可以使用较低级别的迭代器(如
while
循环)获得类似的效果

def isBigEnough(arr)
  i = 0
  result = true
  while i < arr.length
    if arr[i] >= 10
      i++
    else
      i = arr.length
      result = false
    end
  end
  return result
end
is_big_enough([12, 5, 8, 130, 44]) #=> false
is_big_enough([12, 54, 18, 130, 44]) #=> true
def足够大(arr)
i=0
结果=真
而我=10
我++
其他的
i=平均长度
结果=错误
终止
终止
返回结果
终止
_够大吗([12,5,8130,44])#=>错
_够大吗([12,54,18,130,44])#=>对吗
但我想ruby会有办法的。有人知道如何得到同样的效果吗

is_big_enough = -> element { element >= 10 }
[12, 5, 8, 130, 44].all?(&is_big_enough)   # => false
[12, 54, 18, 130, 44].all?(&is_big_enough) # => true
[{| obj | block}]
→ <代码>真或
将集合的每个元素传递给给定的块。如果块从未返回
false
nil
,则该方法将返回
true
。如果未给出该块,Ruby将添加一个
{| obj | obj}
的隐式块,这将导致
all?
在集合成员均为
false
nil
时返回
true

%w[ant bear cat].all? { |word| word.length >= 3 } #=> true
%w[ant bear cat].all? { |word| word.length >= 4 } #=> false
[nil, true, 99].all?                              #=> false
[{| obj | block}]
→ <代码>真或
将集合的每个元素传递给给定的块。如果块从未返回
false
nil
,则该方法将返回
true
。如果未给出该块,Ruby将添加一个
{| obj | obj}
的隐式块,这将导致
all?
在集合成员均为
false
nil
时返回
true

%w[ant bear cat].all? { |word| word.length >= 3 } #=> true
%w[ant bear cat].all? { |word| word.length >= 4 } #=> false
[nil, true, 99].all?                              #=> false
我会用

您传入一个
代码块
,该代码块在功能上等同于在JavaScript中传入函数。

我将使用它


您传入的
代码块
在功能上等同于在JavaScript中传入您的函数。

尝试该方法。如果您拒绝投票,请留下一条评论,解释我没有拒绝投票的原因,但不难发现,有人可能会选择对一个问题投否决票,而这个问题可以通过浏览文档或快速谷歌搜索得到答案。我最近又忘记了这个方法,在谷歌上搜索答案。我认为这说明这篇文章不仅仅是最重要的结果,它是第一页上唯一一个答案正确的结果。stackoverflow的存在是为了让人们不必浏览密集的文档、冗长的博客和大量的论坛帖子。如果你同意,请向上投票。试试这个方法。如果你投反对票,请留下评论解释为什么我没有投反对票,但不难发现,有人可能会选择对一个问题投否决票,而这个问题可以通过浏览文档或快速谷歌搜索得到答案。我最近又忘记了这个方法,在谷歌上搜索答案。我认为这说明这篇文章不仅仅是最重要的结果,它是第一页上唯一一个答案正确的结果。stackoverflow的存在是为了让人们不必浏览密集的文档、冗长的博客和大量的论坛帖子。如果你同意,请把这个问题投上一票。