unshift, shift, pop, pushが混乱するので、絵で整理した
配列の追加・取り出しに関する4つのメソッド(unshift, shift, pop, push)がいつも混乱するので絵で整理した。
絵にすれば覚えられそう!いちお練習のため、自分がよく使うRuby, PHP, JavaScriptでコードも書いた。
・いずれの言語においても上記4つのメソッドは似たような名前で存在しており、用途も同じ。
・いずれの言語のいずれのメソッドも破壊的メソッド。
・言語、バージョンによってメソッドの返り値は異なる。
という具合だった。
Ruby
ruby 1.9.2
# unshift a = [1, 2, 3] b = a.unshift 0 p a #[0, 1, 2, 3] p b #[0, 1, 2, 3] # shift a = [1, 2, 3] b = a.shift p a #[2, 3] p b #1 # pop a = [1, 2, 3] b = a.pop p a #[1, 2] p b #3 # push a = [1, 2, 3] b = a.push 4 p a #[1, 2, 3, 4] p b #[1, 2, 3, 4] # << a = [1, 2, 3] b = a << 4 p a #[1, 2, 3, 4] p b #[1, 2, 3, 4]
PHP
PHP 5.3.10
<?php // unshift $a = array(1, 2, 3); $b = array_unshift($a, 0); var_dump($a); //array(0, 1, 2, 3) var_dump($b); //4(結果配列の要素数) // shift $a = array(1, 2, 3); $b = array_shift($a); var_dump($a); //array(2, 3) var_dump($b); //1 // pop $a = array(1, 2, 3); $b = array_pop($a); var_dump($a); // array(1, 2) var_dump($b); // 3 // push $a = array(1, 2, 3); $b = array_push($a, 4); var_dump($a); //array(1, 2, 3, 4) var_dump($b); //4 (結果配列の要素数) // [] = $a = array(1, 2, 3); $b = $a[] = 4; var_dump($a); //array(1, 2, 3, 4) var_dump($b); //4(追加した値)
JavaScript
node 0.6.12
var a = [1, 2, 3]; var b = a.unshift(0); console.log(a); //[0, 1, 2, 3] console.log(b); //4(結果配列の要素数) var a = [1, 2, 3]; var b = a.shift(); console.log(a); //[2, 3] console.log(b); //1 var a = [1, 2, 3]; var b = a.pop(); console.log(a); //[1, 2] console.log(b); //3 var a = [1, 2, 3]; var b = a.push(4); console.log(a); //[1, 2, 3, 4] console.log(b); //4(結果配列の要素数)