使用 each_with_index 并为新数组添加具有相应索引的值

using each_with_index and adding values with corresponding index for a new array

ruby 这里是新手。我需要使用 each_with_index 函数创建一个新数组,将值添加到相应的索引中。以下是我认为的解决方案,但当然,它不起作用。我敢肯定,即使 'p' 也不需要打印这些值。

def add_value_and_index(a)
  a.each_with_index do |value, index|
    p #{value} + #{index}"
  end
end

规格如下:

describe '#add_value_and_index' do
  it "returns a new array composed of the value + index of each element in the former" do
    expect( add_value_and_index([2,1,0]) ).to eq([2,2,2])
  end
end

您可以使用 map 准确地 return 结果:

def add_value_and_index(array)
  array.map.with_index { |value, index| value + index }
end

如果课程尚未使用 map,您可以创建一个新数组并在每次迭代中将总和添加到该数组:

def add_value_and_index(array)
  result = []
  array.each_with_index { |value, index| result << value + index }
  result
end

我不会在生产中使用第二个示例,因为它冗长且难以阅读。