HTML: Markup language
CSS: Styling language
JavaScript: Scripting language
Web APIs: Programming interfaces
All web technology
Learn web development
Discover our tools
Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
View in English Always switch to English
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
unshift() は Array インスタンスのメソッドで、指定された要素を配列の先頭に追加し、新しい配列の長さを返します。
unshift()
Array
const array = [1, 2, 3]; console.log(array.unshift(4, 5)); // 予想される結果: 5 console.log(array); // 予想される結果: Array [4, 5, 1, 2, 3]
unshift() unshift(element1) unshift(element1, element2) unshift(element1, element2, /* …, */ elementN)
element1
elementN
arr の先頭に追加する要素。
arr
メソッドを呼び出した後のオブジェクトの新しい length プロパティの値です。
length
unshift() メソッドは、与えられた要素を配列風オブジェクトの一番最初に挿入します。
Array.prototype.push() は unshift() と似た動作をしますが、配列の末尾に対して行う点が異なります。
Array.prototype.push()
複数の要素が引数として渡された場合、引数として渡されたものと全く同じ順番で、オブジェクトの最初のチャンクに挿入されることに注意してください。したがって、 unshift() を n 個の引数で 1 回呼び出すのと、1 個の引数で n 回(例えばループを使って)呼び出すのとでは同じ結果にはなりません。
n
例をご覧ください。
let arr = [4, 5, 6]; arr.unshift(1, 2, 3); console.log(arr); // [1, 2, 3, 4, 5, 6] arr = [4, 5, 6]; // 配列をリセット arr.unshift(1); arr.unshift(2); arr.unshift(3); console.log(arr); // [3, 2, 1, 4, 5, 6]
unshift() メソッドは汎用的です。このメソッドは this 値に length プロパティと整数キーのプロパティがあることだけを期待します。文字列も配列風ですが、文字列は不変なので、このメソッドを適用するのには適していません。
this
const arr = [1, 2]; arr.unshift(0); // 呼び出しの返値は 3、新しい配列の長さ // arr is [0, 1, 2] arr.unshift(-2, -1); // 新しい配列の長さは 5 // arr is [-2, -1, 0, 1, 2] arr.unshift([-4, -3]); // 新しい配列の長さは 6 // arr is [[-4, -3], -2, -1, 0, 1, 2] arr.unshift([-7, -6], [-5]); // 新しい配列の長さは 8 // arr is [ [-7, -6], [-5], [-4, -3], -2, -1, 0, 1, 2 ]
unshift() メソッドは this の length プロパティを読み込みます。 0 から length - 1 までの範囲にあるすべてのインデックスを、引数の数だけ右にシフトします(この数だけ値を増加します)。次に、 0 から始めるには、各インデックスを unshift() に渡した引数で設定します。最後に、length を前回の長さに、前に追加した要素の数を加えた値に設定します。
0
length - 1
const arrayLike = { length: 3, unrelated: "foo", 2: 4, }; Array.prototype.unshift.call(arrayLike, 1, 2); console.log(arrayLike); // { '0': 1, '1': 2, '4': 4, length: 5, unrelated: 'foo' } const plainObj = {}; // length プロパティがないため、 length は 0 Array.prototype.unshift.call(plainObj, 1, 2); console.log(plainObj); // { '0': 1, '1': 2, length: 2 }
Enable JavaScript to view this browser compatibility table.
Array.prototype.unshift
core-js
Array.prototype.pop()
Array.prototype.shift()
Array.prototype.concat()
Array.prototype.splice()