相关疑难解决方法(0)

什么是Ruby <=>(太空船)运营商?

什么是Ruby <=>(宇宙飞船)运营商?运营商是否通过其他语言实施?

ruby operators comparison-operators spaceship-operator

250
推荐指数
5
解决办法
9万
查看次数

排序范围值

我想对表示数值范围的字符串数组进行排序,如下所示:

b = ["0-5", "100-250", "5-25", "50-100", "250-500", "25-50"]
Run Code Online (Sandbox Code Playgroud)

使用sort我得到的方法:

b.sort 
# => ["0-5", "100-250", "25-50", "250-500", "5-25", "50-100"]
Run Code Online (Sandbox Code Playgroud)

我希望它像这样:

["0-5, "5-25", "25-50", "50-100", "100-250", "250-500"]
Run Code Online (Sandbox Code Playgroud)

ruby sorting

8
推荐指数
3
解决办法
357
查看次数

Ruby数组相当于active record.where(标准)

这可能是一个非常长的延伸,但如果它存在,将使生活更容易.

无论如何都是这种情况.我有一个哈希数组,其中一个键值是另一个哈希........是的,我知道.

这是一个更好的解释:

@myArrayOfStuff[0]
@myArrayOfStuff[0]["single-key"]
@myArrayOfStuff[0]["single-key"]["object-identifier"]
Run Code Online (Sandbox Code Playgroud)

第一个返回哈希.第二个将返回一个对象(在我的情况下称为页面但示例使用不同的名称)第三个返回我引用的任何变量作为object-identifier.

很简单.

我想做的是选择另一个数组,其中object-identifier值不是nil或大于x.类似于activerecord.where方法的东西.

@x = @myArrayOfStuff.where(["single-key"]["object-identifier"]) > 3orwhatever
Run Code Online (Sandbox Code Playgroud)

显然这不起作用,因为语法是残酷的.但还有另一种方法吗?另一种尝试的路径可能是通过此变量对数组进行排序.就像是

@x = @myArrayOfStuff.sort {|x,y| y <=> x } 
Run Code Online (Sandbox Code Playgroud)

但是我真的不明白什么是ruby的排序方法.有人可以帮忙吗?

ruby arrays sorting activerecord ruby-on-rails

5
推荐指数
1
解决办法
7817
查看次数

Ruby Array#sort 如何知道块应该按升序或降序排序

相关问题已在/sf/answers/799950791/上提供,但我想了解的是

使用时

a.sort { |x, y| x <=> y } 
Run Code Online (Sandbox Code Playgroud)

它如何知道该块应按升序排序,并且在使用时类似

a.sort { |x, y| y <=> x } 
Run Code Online (Sandbox Code Playgroud)

它如何知道这个块应该按降序排序?我很困惑,因为这两个块都使用宇宙飞船运算符,并且预计在每次比较期间返回以下内容,以防出现以下情况a.sort { |x, y| x <=> y }

  • -1 如果 x < y
  • 0 如果 x == y
  • 1 如果 x > y

并在每次比较期间进行以下情况a.sort { |x, y| y <=> x }

  • -1 如果 y < x
  • 0 如果 y == x
  • 1 如果 y > x

现在我们来看一个数组示例:

2.3.2 :023 > a = [ …
Run Code Online (Sandbox Code Playgroud)

ruby sorting

2
推荐指数
1
解决办法
124
查看次数