在 Ruby 中,如果我有一个数组,如何用 "0" 替换任何负值?



假设我有以下数组:

array_sample=[2,7,3,5,2,6]

是否有将"-5"one_answers"-6"替换为0(或任何其他潜在负值(的方法?

我尝试了以下似乎不起作用:

for i in array_sample
if array_sample[i] < 0
array_sample[i] = 0
end

任何建议都将不胜感激,因为这看起来很简单!

下面是另一个片段:

array_sample.map!{|item| [0, item].max}

这将用原始项或0(以较大者为准(替换每个数组值。如果您想要一个不会改变当前数组的新数组(通常是个好主意(,可以使用map而不是map!

试试这个

array_sample = [2, 7, 3, -5, 2, -6]
array_sample.map! { |e| e > 0 ? e : 0 }

响应

[2, 7, 3, 0, 2, 0]

您可以尝试使用地图

array_sample.map do |int|
if (int < 0)
0
else 
int
end
end

要直接将示例转换为正确的代码,可以执行以下操作:

array_sample.each_with_index do |value, index|
if value < 0
array_sample[index] = 0
end
end

但其他答案可能更为地道。

注意,ruby默认情况下不会像c语言那样使用数字进行迭代。大多数时候,ruby会返回每个项,而不是索引,然后你必须查找数字。(除非你要求,否则它会隐藏索引(

最新更新