Ama*_*mal 1 ruby ruby-on-rails
我有一个如下所示的数组,我想从另一组中减去一组。
values1 = [[6336.94, 0, 0, 0], [3613.12, 0, 0, 0], [2862.95, 0, 0, 0]]
values2 = [[-842.68, 0, 0, 0], [-184.25, 0, 0, 0], [-112.18, 0, 0, 0]]
Run Code Online (Sandbox Code Playgroud)
我想得到一个像这样的最终数组:
[[7179.62,0,0,0],[3797.37,0,0,0],[2975.13,0,0,0]]
Run Code Online (Sandbox Code Playgroud)
我已经尝试过values1.zip(values2).map {|x,y| x-y},但它返回给我一个数组,其中第一个和零被删除。
.zip看起来只低一层。在您的示例中, x 和 y 不是内部数组中的值,它们是内部数组本身。从一个数组中减去另一个数组会删除第一个数组中的所有公共元素。这就是为什么您看到的结果是第一个删除了所有零(公共元素)的数组。
如果你想压缩内部数组,你需要更深入一层:
values1.zip(values2).map { |x, y| x.zip(y).map { |a, b| a - b } }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1051 次 |
| 最近记录: |