ひでぼ~blog

C#ときどきゲーム

ES6のスプレッド構文で配列の先頭を取得する

JavaScriptで配列の先頭の要素を取得したいとき、shiftを使うと先頭の要素を取得できますが、取得した配列からその要素が消えてしまいます。

const items = ["回復薬", "回復薬グレート", "こんがり肉", "解毒薬"];

// shiftだと配列から先頭が消える
const shifted = items.shift();
console.log(shifted); // 回復薬
console.log(items);   // [ '回復薬グレート', 'こんがり肉', '解毒薬' ]

スプレッド構文を使って配列を分解して代入すると、配列の中身は変えずに先頭だけを取得できました。

const items = ["回復薬", "回復薬グレート", "こんがり肉", "解毒薬"];

// 配列を分解して先頭を取得(もとの配列は変わらない)
const [first, ...other] = items;
console.log(first); // 回復薬
console.log(items); // [ '回復薬', '回復薬グレート', 'こんがり肉', '解毒薬' ]

shiftではitemから回復薬が消えてしまいましたが、配列を分解して代入した場合はちゃんと回復薬が残っていますね。