vue中三個點語法(...)


擴展運算符。

對數組和對象而言,就是將運算符后面的變量里東西每一項拆下來。

一)操作數組

復制代碼
// 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM