1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

末尾だけど、末尾じゃなくても追加可能な.pushメソッド

Posted at

.pushメソッドとは

  • 配列末尾への要素追加を行う破壊的メソッド
  • 呼び出し先の配列を直接書き換え、変更後の配列自身を戻り値として返す
num = [1, 2, 3]

num.push(4)

num  # => [1, 2, 3, 4]
# 元の変数numが書き換えられている破壊的メソッドであることがわかる(後述)

基本的な使い方

① 空の配列に任意のオブジェクトを(複数)追加する場合

number = []
x = 123
y = 456

number.push(x, y)

number # => [123, 456]

② 配列をそのまま要素として追加する場合

arr = []

arr.push([x, y])

arr  # => [[123, 456]]

特徴

  • 可変長引数に対応
     - 複数の要素を一度に末尾へ追加可能
array = [1]

array.push(2, 3)

array  # => [1, 2, 3]
  • 破壊的メソッド
     - 元の配列を直接書き換える
     - 戻り値は変更後の配列になる
    ※ 通常、破壊的メソッドは末尾に ! が付くが、push は例外

  • 他の挿入方法あり
     - 例:array << obj
     - ただし、単一の要素のみ追加できる

覚書

  • 末尾!!!!」ではなくても、空の配列を作ってただただ要素を追加可能
    (基本的な書き方①)
str = []
a = "Pokemon"

str.push(a)

str  # => ["Pokemon"]

まとめ

  • 末尾!に要素を追加」の末尾感が強すぎる印象が個人的にあるが、空の配列を作って要素を挿入する時にも全然使える。
  • <<ではなく、.pushを使えば良さそう。
  • 大は小を兼ねる。
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?