小编Ste*_*fan的帖子

计算数组中的类实例

我有一个模型Rails应用程序CarWheel.我有返回不同对象数组的方法.例如

array = [Car.new, Car.new, Wheel.new, Wheel.new, 'home', 'market', 'fun']
Run Code Online (Sandbox Code Playgroud)

如何计算数组中的Car实例和Wheel实例?

我试过了array.include?(Car),array.count(Car)他们没有工作.

ruby arrays ruby-on-rails

-1
推荐指数
1
解决办法
139
查看次数

Ruby中的'**'有什么作用?

这个**符号在Ruby中意味着什么?

(1..5).map { |i| i**2 } # => [1, 4, 9, 16, 25]
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails

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

获取没有空值的哈希长度

filters = {
  "start_year" => "2009",
  "end_year" => "2011",
  "theme" => "",
  "discipline" => ""
}
Run Code Online (Sandbox Code Playgroud)

filters.length是的4,但我想得到2(那些不仅有钥匙,还有价值的人)

ruby arrays ruby-on-rails-4

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

如何在Ruby中嵌套数组中求和?

我有这个数组:

array = [["R.M", 20], ["R.U-CS", 3], ["R.M-TIC", 3], ["R.J.CONF", 20]]
Run Code Online (Sandbox Code Playgroud)

我想要sum数值,所以我使用以下方法将其转换为单个数组flatten:

array = array.flatten
#=> ["R.M", 20, "R.U-CS", 3, "R.M-TIC", 3, "R.J.CONF", 20]
Run Code Online (Sandbox Code Playgroud)

然后:

a = []
array.each do |r|
  a << r if r.class == Fixnum
end
a 
Run Code Online (Sandbox Code Playgroud)

这是有效的,但我正在寻找一个更简单的解决方案,可能首先将数组转换为"唯一numeric"数组:

[20, 3, 3, 20]
Run Code Online (Sandbox Code Playgroud)

ruby arrays multidimensional-array

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

Ruby按字母顺序按子索引排序数组

我有一个数组数组:

arr_of_arrs = [
  ["cart", "disk", "halt", "walk"],
  ["prot", "waco", "beau", "drab"],
  ["meet", "lick", "look", "itch"],
  ["find", "asks", "noun", "keen"],
  ["jive", "moon", "seem", "beam"]
]
Run Code Online (Sandbox Code Playgroud)

我怎么能按照子阵列的指定索引处的元素的字母顺序排序这个数组数组,比如索引3,所以它的新顺序是:

[
  ["jive", "moon", "seem", "beam"],
  ["prot", "waco", "beau", "drab"],
  ["meet", "lick", "look", "itch"],
  ["find", "asks", "noun", "keen"],
  ["cart", "disk", "halt", "walk"]
] #                        ^^^^^^ index 3 is ordered
Run Code Online (Sandbox Code Playgroud)

ruby arrays sorting

-2
推荐指数
2
解决办法
235
查看次数

我怎么检查一个数字是Dudeney数字,使用Ruby?

如何使用Ruby检查数字是否是Dudeney数字?以这些结果为例:

dudeney_number?(1)     #=> true
dudeney_number?(125)   #=> false
dudeney_number?(512)   #=> true
dudeney_number?(1728)  #=> false
dudeney_number?(5832)  #=> true
Run Code Online (Sandbox Code Playgroud)

ruby

-3
推荐指数
1
解决办法
414
查看次数

为什么`where`在Rails中给出"未定义的方法"错误?

我正在尝试使用特定属性获取所有反馈.我正在使用此代码:

def index
  feedbacks = Feedback.all
  if params[:tag]
    @average_customer_rating = feedbacks.where('buyer_feedback_date is not null').rated(Feedback::FROM_BUYERS).average(:buyer_rating) || 0
    @products = Product.includes(:images).tagged_with(params[:tag]).order('DESC').limit(22)
  else
    @products = Product.includes(:images).all
    @average_customer_rating = feedbacks.where('buyer_feedback_date is not null').rated(Feedback::FROM_BUYERS).average(:buyer_rating) || 0
  end
end
Run Code Online (Sandbox Code Playgroud)

和Rails显示此错误:

undefined method `where' for []:Array
Run Code Online (Sandbox Code Playgroud)

为什么我不能where在这里使用,我该如何解决?

ruby ruby-on-rails ruby-on-rails-3.2

-3
推荐指数
1
解决办法
276
查看次数

ruby:如何在不更改其初始值的情况下使用Array?

我以前有使用python的经验,并且对ruby非常陌生。阵列真的让我感到困惑。这是我的代码示例:

edges = [[[1, 2], [100, 200]], [[700, 400], [1000, 2000]]]

new_edges = Array.new(edges)
new_edges.map{|edge| edge.map{|point| point.insert(0, 808912)}}

edges
#=> [[[808912, 1, 2], [808912, 100, 200]], [[808912, 700, 400], [808912, 1000, 2000]]]

new_edges
#=> [[[808912, 1, 2], [808912, 100, 200]], [[808912, 700, 400], [808912, 1000, 2000]]]
Run Code Online (Sandbox Code Playgroud)

我相信会发生的是,in中的值edges不会更改,而in 会new_edges更改,但是,两者都会更改。我如何创建初始数组的副本并进行操作而不更改任何缩写?

ruby dictionary

-3
推荐指数
1
解决办法
81
查看次数

语法错误,意外',',期待=>

我正在学习Ruby,当我在命令行界面中写这个时,我收到以下错误:

hold = {21, 22, {23, 24}, 25}
#=> SyntaxError: (irb):1: syntax error, unexpected ',', expecting =>
Run Code Online (Sandbox Code Playgroud)

这不应该是创造对

#=> {21 => 22, {23,24}=>25}
Run Code Online (Sandbox Code Playgroud)

ruby

-4
推荐指数
1
解决办法
1005
查看次数

从Ruby中的数组中选择连续的整数

我想从数组中选择连续的整数,例如:

输入:(不必排序)

array = [1, 3, 6, 7, 8, 9, 10, 12, 13, 17]
Run Code Online (Sandbox Code Playgroud)

预期产量:

#=> [6, 7, 8, 9, 10, 12, 13]
Run Code Online (Sandbox Code Playgroud)

到目前为止这是我的代码:

array = [1, 3, 9, 6, 7, 10, 8, 12, 13, 17]
newarray = []
z = 0
array.sort.each_cons(2) do |x, y|
  if y == x + 1
    if z == 0
      newarray.insert(0, x, y)
    else
      newarray.push(y)
    end
  end
  z = z + 1
end

newarray #=> [7, 8, 9, 10, 13]
Run Code Online (Sandbox Code Playgroud)

如你所见,6并且12 …

ruby arrays

-4
推荐指数
1
解决办法
561
查看次数

单个变量名称在ruby中意味着什么?

在某些代码中,我发现:

class Job
  @@types = [:a, :b, :c, :d].reduce({}) do |acc, cmd|
    acc[cmd] = cmd.to_s
    acc
  end
  # ...
end
Run Code Online (Sandbox Code Playgroud)
  1. 没有任何东西进入reduce.那是什么意思?
  2. 有一个单一的acc.那是什么意思?

ruby

-4
推荐指数
1
解决办法
63
查看次数