/* 配列 */
const arr = [1, 2, 3];
console.log(...arr); // 出力: 1 2 3

/* 文字列 */
const str = "Hello World";
console.log(...str); // 出力: "H e l l o   W o r l d"

/* DOMコレクション */
const items = document.querySelectorAll(".item"); // NodeListを返す
const itemsArray = [...items]; // スプレッド構文を使って配列に変換

// これで配列メソッドを使用可能
itemsArray.forEach(item => {
    console.log(item.textContent);
});
const arr1 = [1, 2];
const arr2 = [3, 4];
const mergedArr = [...arr1, ...arr2];  // 配列の結合

console.log(mergedArr);  // [1, 2, 3, 4]
const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];

// 2つの配列を結合
const mergedArray = [...arr1, ...arr2];
console.log(mergedArray); // 出力: [1, 2, 3, 4, 5, 6]

// 新しい要素を追加しながら配列を拡張
const extendedArray = [...arr1, 4, 5];
console.log(extendedArray); // 出力: [1, 2, 3, 4, 5]
function sum(a, b, c) {
    return (a + b + c);
}

const numbers = [1, 2, 3];

const result = sum(...numbers); // sum(1, 2, 3)と同じ結果を返す
console.log(result); // 出力: 6
// HTMLドキュメント内の .item クラスを持つすべての要素を選択
const items = document.querySelectorAll(".item");  // NodeListを返す

// スプレッド構文を使用してNodeListを配列に変換
const itemsArray = [...items];  

// itemsArrayは配列に変換されているため、配列メソッドを使用可能
itemsArray.forEach(item => {
    console.log(item.textContent);  // 各 .item 要素のテキスト内容を出力
});

// 他の配列と結合
const newItems = ["New Item 1", "New Item 2"];
const allItems = [...itemsArray, ...newItems];  // 既存のNodeListと新しい配列を結合

console.log(allItems);  // NodeList + 新しい配列
const items = ...[1, 2, 3, 4]; // Uncaught SyntaxError
const obj = {
    a: 1,
    b: 2,
    c: 3
}

console.log(...obj); // Uncaught TypeError
const obj1 = {
    x: 1,
    y: 2
}

const obj2 = {
    z: 3
}

// オブジェクトの結合
const mergedObj = {...obj1, ...obj2};
console.log(mergedObj);  // { x: 1, y: 2, z: 3 }