我写了以下代码
a = [2,4,6]
def add_value_and_index(anArray)
newArray = []
anArray.each_with_index do |element, index|
total = element + index
total
newArray <<"#{total}"
newArray
end
newArray
#newArray.to_i does not work
end
add_value_and_index(a)中
这应该返回一个数组,它是索引号和值的组合。该方法有效。然而,我在strings =&gt;中获得输出[“3”,“5”...]虽然我想要整数=&gt; [1,2,3]。
我尝试添加newArray.to_i,但这不起作用。关于如何将这个数组转换为整数的任何想法?
答案 0 :(得分:6)
newArray <<"#{total}" # WRONG
您正在将字符串推入数组,期望最终获得整数。将上面的行更改为:
newArray << total
只是仅供参考,您可以使用map
来清理这里的内容。
def your_method(array)
array.map.with_index do |element, index|
element + index
end
end
答案 1 :(得分:0)
正如@humza指出的那样,错误是newArray << total
&#34;#{总}&#34;是字符串插值,它基本上是在字符串中评估占位符。
这只是一个单行解决方案......如果你有兴趣...
a.collect.each_with_index {|num, index| num + index}
地图和收集之间也没有区别...
Difference between map and collect in Ruby?