如何检查数组中的每个元素是否大于之前的元素?

时间:2017-01-13 21:49:25

标签: arrays ruby integer comparison

我使用的是Ruby 2.4。我有一个字符串数组,它们本身就是数字。像

这样的东西
["1", "2", "3", "5"]

如何检查数组中每个元素的整数版本(第一个除外)是否大于之前的元素?因此,例如,对上面执行的函数将返回true,但是返回类似

的数组
["1", "5", "4", "6"]

将返回false(因为" 4"不大于" 5"。

2 个答案:

答案 0 :(得分:5)

对谓词进行短语的另一种方法是:“对于所有 缺点连续的数字对,第二个是大于第一个“?这几乎可以直接用代码表示:

ary.map(&:to_i).each_cons(2).all? {|first, second| second > first }

顺便说一下:这个属性被称为“严格单调性”。

答案 1 :(得分:4)

您可以使用Enumerable#sort_by查看customTask是否已按数值排序:

arr

如果元素不唯一,则阵列会自动失败。因为这意味着两个元素具有相同的值,即一个元素不大于另一个元素。