ruby - 如何在使用“while”循环而不使用 Ruby 中的“inject”、“each”、“collect”或“map”的情况下对数组元素进行平方
问题描述
我正在为 Bootcamp 做一些课前工作,但遇到了这个问题。
我需要在使用循环时对数组进行平方,仅此while
而已。numbers = [1,2,3]
它需要等于[1,4,9]
:
def square_array(numbers)
counter = 0
while numbers[counter] do
return numbers[counter]
counter += 1
end
counter ** 2
end
解决方案
不使用数组映射:
def square_array(numbers)
counter = 0
sqr_numbers=[]
while numbers[counter] do
sqr_numbers<<numbers[counter]*numbers[counter]
counter += 1
end
sqr_numbers
end
您可以map
将数组的每个元素平方或做任何您想做的事情:
def square_array(numbers)
return numbers.map {|num| num ** 2}
end
推荐阅读
- c++ - 应用模板
一行中的多个类型别名 - javascript - 为什么我的文件没有按顺序上传到 Firestore?
- javascript - Cypress.js 环境变量 - CircleCI
- reactjs - _react.default.createContext 不是使用@material-ui/core 时的函数
- elasticsearch - 在同一搜索中使用关键字和文本字段进行查询字符串查询
- reactjs - 无法从以选项和值作为对象的 Select 组件中取消选择初始值
- excel - 运行时错误“50290”:打开 Excel 工作簿时出现应用程序定义或对象定义错误
- ios - 如何按下 tableview 单元格以在导航控制器中显示带有文本的视图控制器
- r - 需要函数将名称与逗号分隔的列表匹配
- css - 如何使用带有 material-ui 图标组件的自定义 SVG 文件?