将元素添加到ruby数组返回新数组

时间:2012-01-31 00:12:30

标签: ruby arrays copy new-operator

我想在数组中添加一个元素,但没有实际更改该数组,而是返回一个新数组。换句话说,我想避免:

arr = [1,2]
arr << 3

哪会回来:

[1,2,3]

改变arr本身。我该如何避免这种情况并创建一个新阵列?

2 个答案:

答案 0 :(得分:43)

您可以使用plus运算符在Ruby中轻松添加两个数组。所以,只需从元素中创建一个数组。

arr = [1, 2]
puts arr + [3]
# => [1, 2, 3]
puts arr
# => [1, 2]

答案 1 :(得分:6)

它也可以通过使用*运算符

扩展arr来实现
arr = [1,2]
puts [*arr, 3]
=> [1, 2, 3]