gpt4 book ai didi

javascript - ruby 是否有相当于 javascript 的 Array.prototype.every 方法?

转载 作者:行者123 更新时间:2023-11-28 19:09:25 24 4
gpt4 key购买 nike

我正在寻找一种与 javascript 的 Array.prototype.every 类似的方法方法,但在 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

但我认为 ruby​​ 会有一些东西可以解决这个问题。有人知道如何获得同样的效果吗?

最佳答案

我会使用all? .

my_array.all? { |element| element >= 10 }

您传入一个代码块,其功能相当于在 JavaScript 中传递函数。

关于javascript - ruby 是否有相当于 javascript 的 Array.prototype.every 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31015550/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com