shift() メソッドは、配列から最初の要素を取り除き、その要素を返します。このメソッドは配列の長さを変えます。

構文

arr.shift()

Return value

The removed element from the array; undefined if the array is empty.

説明

shift メソッドは 0 番目の添え字の要素を取り除き、続く添え字の値を小さい方向にずらします。そして、削除された値を返します。length プロパティが 0 の場合、undefined を返します。

shift は意図的に汎用性を持たせています。つまり、このメソッドは配列に類似したオブジェクトに対して call したり、apply したりすることもできます。ゼロから始まる数値プロパティであり、連続した連なりの最後を反映している length プロパティを含まないオブジェクトでは効果がないかもしれません。

配列から要素を取り除く

以下のコードは myFish 配列を、その最初の要素を取り除く前後で表示します。また、取り除いた要素も表示します。

var myFish = ['angel', 'clown', 'mandarin', 'surgeon'];

console.log('myFish before:', JSON.stringify(myFish));
// myFish 処理前: ['angel', 'clown', 'mandarin', 'surgeon']

var shifted = myFish.shift();

console.log('myFish 処理後:', myFish); 
// myFish 処理後: ['clown', 'mandarin', 'surgeon']

console.log('取り除いた要素:', shifted); 
// 取り除いた要素: angel

while文における用法

shift メソッドは時に、while文の条件内において用いられます。以下のコードでは、要素がすべて無くなるまで、各くり返し内でその配列内の次の要素を取り除きます。

var names = ["Andrew", "Edward", "Paul", "Chris" ,"John"];

while( (i = names.shift()) !== undefined ) {
    console.log(i);
}
// Andrew, Edward, Paul, Chris, John

仕様

仕様 ステータス コメント
ECMAScript 3rd Edition (ECMA-262) 標準 初期バージョンです。JavaScript 1.2 から実装されています。
ECMAScript 5.1 (ECMA-262)
Array.prototype.shift の定義
標準  
ECMAScript 2015 (6th Edition, ECMA-262)
Array.prototype.shift の定義
標準  
ECMAScript Latest Draft (ECMA-262)
Array.prototype.shift の定義
ドラフト  

ブラウザ対応

Update compatibility data on GitHub
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeEdge MobileAndroid 版 FirefoxAndroid 版 OperaiOS 版 SafariSamsung InternetNode.js
基本対応Chrome 完全対応 1Edge 完全対応 ありFirefox 完全対応 1IE 完全対応 5.5Opera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 ありChrome Android 完全対応 ありEdge Mobile 完全対応 ありFirefox Android 完全対応 4Opera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android 完全対応 ありnodejs 完全対応 あり

凡例

完全対応  
完全対応

関連情報

ドキュメントのタグと貢献者

このページの貢献者: findShota, woodmix, dskmori, N.Wada, Hnakamur, teoli, ethertank, Potappo, Mgjbot, Yuichirou
最終更新者: findShota,