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から回復薬が消えてしまいましたが、配列を分解して代入した場合はちゃんと回復薬が残っていますね。