Rest構文は、配列やオブジェクトの「残りの要素」をひとまとめに受け取る構文です。
...(スプレッド構文と見た目は同じ)を使いますが、使う場所が違えば意味も違うのがポイント。
const [first, ...rest] = [1, 2, 3, 4];
const { a, ...rest } = { a: 1, b: 2, c: 3 };
function myFunc(...args) { console.log(args); // 配列としてすべての引数が入る }
コピペではなく実際に打ち込んで練習してみましょう。
const numbers = [10, 20, 30, 40]; const [first, ...rest] = numbers; console.log(first); // 10 console.log(rest); // [20, 30, 40]
const user = { name: "Taro", age: 25, city: "Tokyo" }; const { name, ...other } = user; console.log(name); // "Taro" console.log(other); // { age: 25, city: "Tokyo" }
function sum(...nums) { return nums.reduce((a, b) => a + b, 0); } console.log(sum(1, 2, 3)); // 6 console.log(sum(5, 10)); // 15
const [a, b, ..._] = [1, 2, 3, 4, 5]; console.log(a, b); // 1 2