使用 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
我不会在生产中使用第二个示例,因为它冗长且难以阅读。
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
我不会在生产中使用第二个示例,因为它冗长且难以阅读。