【发布时间】:2019-08-17 16:49:43
【问题描述】:
我需要创建一个方法square_array 接受一个参数,该参数将是一个数组。该方法需要循环遍历原始数组并将每个元素与自身相乘,然后将平方值插入新数组中。
执行此操作时出现错误array[i] ** 2 = output[i] 我认为这是因为等号,但我不确定。
def square_array(array)
i = 0
array = ('1'..'3').to_a
output = []
while i < array.length do
array[i] ** 2 = output[i]
i += 1
end
end
我期待
square_array([1,2,3])
返回
[1,4,9]
【问题讨论】:
-
“我相信我遇到了一个错误,但我不确定”不是一个足够精确的错误描述,我们无法为您提供帮助。 什么不起作用? 如何不起作用?你的代码有什么问题?您收到错误消息吗?错误信息是什么?你得到的结果不是你期望的结果吗?你期望什么结果,为什么,你得到的结果是什么,两者有什么不同?您正在观察的行为不是期望的行为吗?期望的行为是什么,为什么,观察到的行为是什么,它们有何不同?
-
当
array作为参数传递给你时,你为什么要在函数中设置它??? -
另外,您是否考虑过使用map?如果你愿意,你可以把它包装在一个函数中,但是写
output = array.map { |x| x * x }也一样容易。 -
我的猜测是他才刚刚起步,并没有真正掌握基础知识,因此
array[i] ** 2 = output[i]和方法中原始输入的覆盖