擴展運算符。
對數組和對象而言,就是將運算符后面的變量里東西每一項拆下來。
一)操作數組
// 1.把數組中的元素孤立起來 let iArray = ['1', '2', '3']; console.log(...iArray); // 打印結果 1 2 3 // 2.在數組中添加元素 let iArray = ['1', '2', '3']; console.log(['0', ...iArray, '4']); // 打印結果 ["0", "1", "2", "3", "4"] // 3.在數組中刪除元素(取出一個元素) // 與結構賦值的結合 // 如果將擴展運算符用於數組賦值,只能放在參數的最后一位,否則會報錯。 const [first, ...rest] = [1, 2, 3, 4, 5]; console.log(first); // 打印結果 1 console.log([...rest]); // 打印結果 [2, 3, 4, 5] const [one, ...last] = ["foo"]; console.log(one); // 打印結果 foo console.log([...last]); // 打印結果 [] // 4.數組的合並 // ES6 的寫法 var arr1 = [0, 1, 2]; var arr2 = [3, 4, 5]; arr1.push(...arr2); console.log(arr1); // 打印結果 [0, 1, 2, 3, 4, 5] // 推薦使用寫法 console.log([...arr1, ...arr2]); // 打印結果 [0, 1, 2, 3, 4, 5] // 5.將字符串轉成數組 let iString = 'zhongguoren'; console.log([...iString]); // 打印結果 ["z", "h", "o", "n", "g", "g", "u", "o", "r", "e", "n"] // 6.Map 和 Set 結構, Generator 函數 let map = new Map([ [1, 'one'], [2, 'two'], [3, 'three'], ]); let arr = [...map.keys()]; console.log(arr); // 打印結果 [1, 2, 3] // 7.當做參數傳遞和直接傳數組的區別 iClick4() { let iArray = ['1', '2', '3']; //注意傳的時候,就要三個點 this.hanshu(...iArray); }, hanshu(...iArray) { let ooo = 1; console.log(...iArray); // 打印結果 1 2 3 }, // 8.求出最大值 let iArray = [1, 2, 3, 99, 44, 66, 21, 85, 77]; let ooo = Math.max(...iArray); console.log(ooo); // 打印結果 99 // 9.如果對沒有iterator接口的對象,使用擴展運算符,將會報錯。 let obj = { name: 'zhh', age: '20' } console.log([...obj]);
(二)操作對象
// 1.添加一個屬性 let a = {age: 18, id: 10}; let c = {name: 'zhh', ...a}; console.log(c); // 打印結果 {name: "zhh", age: 18, id: 10} // 2.修改一個屬性 let a = {name: 'zhh', age: 18, id: 10}; let c = {...a, name: 'zhh1'}; console.log(c); // 打印結果 {name: "zhh1", age: 18, id: 10} // 3.刪除一個屬性(拿出屬性或者對象) let a = {name: 'zhh', age: 18, id: 10}; let {name, ...c} = a; console.log(name, c); // 打印結果 zhh {age: 18, id: 10}
轉載於:
https://www.cnblogs.com/Yan3399/p/14868123.html