如何向数组添加多个元素?

dav*_*son 48 ruby arrays

我可以轻松地将一个元素添加到现有数组中:

arr = [1]
arr << 2
# => [1, 2]
Run Code Online (Sandbox Code Playgroud)

如何将多个元素添加到我的数组?

我想做类似的事情arr << [2, 3],但这会为我的数组添加一个数组#=> [1, [2, 3]]

fal*_*tru 58

使用+=运算符:

arr = [1]
arr += [2, 3]
arr
# => [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)

  • 请注意,这不会添加到数组; 它创建一个新的数组,它是左右两侧的串联,并将其分配给`arr`. (7认同)

dav*_*son 33

利用 .push

arr = [1]
arr.push(2, 3)
# => [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)

您还可以.push()使用另一个数组的所有元素

second_arr = [2, 3]
arr.push(*second_arr)
# => [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)

但请注意! 没有*它会添加second_arrayarr.

arr.push(second_arr)
# => [1, [2, 3]]
Run Code Online (Sandbox Code Playgroud)

劣质替代方案:

你也可以链接<<电话:

arr = [1]
arr << 2 << 3
# => [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)

  • 这应该是最重要的答案 (3认同)

Aru*_*hit 16

你也可以使用以下方法Array#concat:

arr = [1]
arr.concat([2, 3]) # => [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)


MrY*_*iji 7

有几种方法可以实现:

array = [1, 2]

array += [3, 4] # => [1, 2, 3, 4]

# push: put the element at the end of the array
array.push([5, 6]) # =>  [1, 2, 3, 4, [5, 6]]
array.push(*[7, 8]) # => [1, 2, 3, 4, [5, 6], 7, 8]

array << 9 # => [1, 2, 3, 4, [5, 6], 7, 8, 9]

# unshift: put the element at the beginning of the array:
array.unshift(0) #=> [0, 1, 2, 3, 4, [5, 6], 7, 8, 9]
Run Code Online (Sandbox Code Playgroud)

一些链接: