我试图积累一些值,如果它们符合条件.为什么这个片段返回nil,当我希望它返回2时?
[[1, 2], [2, 3], [3, 8], [4, 2]].inject(0) { |s, e| s + e[1] if e[0] <= 1}
Run Code Online (Sandbox Code Playgroud)
这不是inject正确的方法吗?
你应该回归s;
[[1, 2], [2, 3], [3, 8], [4, 2]].inject(0) { |s, e| s += e[1] if e[0] <= 1; s}
Run Code Online (Sandbox Code Playgroud)
小清洁工
[[1, 2], [2, 3], [3, 8], [4, 2]].inject(0){|s,(k,v)| s += (k<2 ? v : 0)}
Run Code Online (Sandbox Code Playgroud)