ES6 - 陣列

貓董發表於2018-12-18

回顧ES5的陣列迴圈方法

  1. arr.forEach((val,index,arr)=>{}); 不可以return 值出來;
  2. arr.map((val,index,arr)=>{});常和return一起用,返回新陣列,如果沒有return,作用等同於forEach();
  3. arr.filter((val,index,arr)=>{});過濾掉返回值為false的元素,返回新陣列;
  4. arr.some((val,index,arr)=>{}); 只要有一個元素符合條件(返回true),就返回true;
  5. arr.every((val,index,arr)=>{});所有元素符合條件(都返回true),才會返回true;
  6. arr.reduce((pre,cur,index,arr)=>{return pre**cur}); 陣列連加連乘之類的操作(遞迴);
  7. arr.reduceRight((pre,cur,index,arr)=>{}); 從後往前操作;

ES6新加的求冪操作符** 等價於之前的Math.pow()

ES6 新加的陣列迴圈方法 for...of

  1. for(let val of arr){}; 對陣列值進行迴圈;
  2. for(let index of arr.keys()){}; 對陣列索引迴圈
  3. for(let item of arr.entries()){}; 對陣列項迴圈
  4. for(let [key,val] of arr.entries()){};對鍵值迴圈

注意ES6中array的新方法
arr.keys()陣列下標
arr.entries()陣列項

陣列新特性

  1. Array.from():
    • 複製陣列:let arr2 = Array.from(arr);
    • 把類陣列轉換為陣列:基本上有 length屬性的都可以轉為陣列:
      1. js 選擇的DOM節點,nodeList--類陣列;
      2. function自帶的arguments--類陣列
      3. 字串,有length屬性
      4. json物件,如果新增length屬性後,也可以轉為陣列;
  2. Array.of(): 基本上與...運算子差不多,可以將幾個字串轉為陣列;
  3. Array.find((val,index,arr)=>{})找到就返回第一個符合條件的item,沒找到返回undefined;
  4. Array.findIndex((val,index,arr)=>{})返回第一個符合條件的索引,沒找到就返回-1;
  5. arr.fill('預設值',1,3)用預設值填充第一第二個元素;
  6. arr.includes();str.includes()基本一致,也可以用arr.indexOf()判斷是否包含某元素;

相關文章