Ruby从数组中减去一个数字

use*_*674 1 ruby ruby-on-rails

是否有一个ruby函数用于从数组中的所有元素中减去?

[2,4,7,8,9] - 8 = [-6,-4,-1,0,1] 
Run Code Online (Sandbox Code Playgroud)

这不起作用,但我宁愿不用更复杂的情况来做这件事.

[2,4,7,8,9] - [8,8,8,8,8] = [-6,-4,-1,0,1] 
Run Code Online (Sandbox Code Playgroud)

mea*_*gar 15

你想要的map,它允许你将转换应用于Enumerable的每个元素,返回结果数组:

[2,4,7,8,9].map { |i| i - 8 } # => [-6, -4, -1, 0, 1]
Run Code Online (Sandbox Code Playgroud)

顺便说一句,你的第二个例子最肯定不会不会以这种方式工作:

[2,4,7,8,9] - [8,8,8,8,8] = [-6,-4,-1,0,1] 
Run Code Online (Sandbox Code Playgroud)

减法从第一个数组中删除第二个数组中的项目[2,4,7,9],而不是您期望的结果[-6,-4,-1,0,1].