我想以非变异的方式向数组添加新元素。在JS中,我可以这样做:
var new_arr = arr.concat(3)
而不是:
arr.push(3)
我如何在Ruby中做同样的事情? Ruby中的concat
方法正在发生变异。
答案 0 :(得分:9)
这很简单:
new_arr = arr + [3]
答案 1 :(得分:0)
我将使用似乎不太尴尬的数组splat添加另一个解决方案:
new_arr = [*arr, 3]
答案 2 :(得分:-1)
仅供参考:这不是非变异数组推送方法的等价物。但是,您可以使用array union,
组合两个排除重复值的数组new_arr = arr | [3]
注意:Union - 通过将ary与other_ary连接来返回一个新数组,不包括任何重复项并保留原始数组中的顺序。