gpt4 book ai didi

arrays - Ruby:如何从数组内的整数中删除特定数字?

转载 作者:数据小太阳 更新时间:2023-10-29 08:29:55 25 4
gpt4 key购买 nike

我是编程新手。我想获取一个整数数组,例如 [155, 151, 2, 15] 并删除一个特定数字,在本例中为 5,然后将新数字相加。我把这个问题分解成更小的步骤,并得到了我想要的结果。我只是想知道是否有更简单的方法来解决这样的问题?也许我可以使用不同的方法?非常感谢任何帮助。

这是我的代码:

 arr = [155, 151, 2, 15]
# goal: remove the 5 digit from values and add
# new numbers together --> 1 + 11 + 2 + 1 == 15

# convert to arr of strings and delete zeros
str_arr = []
arr.each do |el|
str_arr << el.to_s.delete('5')
end

# convert to arr of nums
num_arr = []
str_arr.each do |el|
num_arr << el.to_i
end

# reduce num_arr
num_arr.reduce(:+)

最佳答案

也许您可以使用 map 而不是 each,这样您就可以避免将 block 内转换的每个元素推送到新的初始化数组,例如:

p [155, 151, 2, 15].map { |el| el.to_s.delete('5').to_i }.reduce(:+)
# 15

如果使用 ruby​​ 2.4 或更高版本,您可以使用 Enumerable#sum而不是减少(这似乎是一个更快的选择)。

p [155, 151, 2, 15].sum { |el| el.to_s.delete('5').to_i }
# 15

关于arrays - Ruby:如何从数组内的整数中删除特定数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48360134/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com