回顧ES5的陣列迴圈方法
arr.forEach((val,index,arr)=>{});
不可以return 值出來;arr.map((val,index,arr)=>{});
常和return一起用,返回新陣列,如果沒有return,作用等同於forEach();arr.filter((val,index,arr)=>{});
過濾掉返回值為false的元素,返回新陣列;arr.some((val,index,arr)=>{});
只要有一個元素符合條件(返回true),就返回true;arr.every((val,index,arr)=>{});
所有元素符合條件(都返回true),才會返回true;arr.reduce((pre,cur,index,arr)=>{return pre**cur});
陣列連加連乘之類的操作(遞迴);arr.reduceRight((pre,cur,index,arr)=>{});
從後往前操作;
ES6新加的求冪操作符
**
等價於之前的Math.pow()
ES6 新加的陣列迴圈方法 for...of
for(let val of arr){};
對陣列值進行迴圈;for(let index of arr.keys()){};
對陣列索引迴圈for(let item of arr.entries()){};
對陣列項迴圈for(let [key,val] of arr.entries()){};
對鍵值迴圈
注意ES6中array的新方法
arr.keys()
陣列下標
arr.entries()
陣列項
陣列新特性
Array.from()
:- 複製陣列:
let arr2 = Array.from(arr);
- 把類陣列轉換為陣列:基本上有 length屬性的都可以轉為陣列:
- js 選擇的DOM節點,nodeList--類陣列;
- function自帶的arguments--類陣列
- 字串,有length屬性
- json物件,如果新增length屬性後,也可以轉為陣列;
- 複製陣列:
Array.of()
: 基本上與...
運算子差不多,可以將幾個字串轉為陣列;Array.find((val,index,arr)=>{})
找到就返回第一個符合條件的item,沒找到返回undefined;Array.findIndex((val,index,arr)=>{})
返回第一個符合條件的索引,沒找到就返回-1;arr.fill('預設值',1,3)
用預設值填充第一第二個元素;arr.includes();
與str.includes()
基本一致,也可以用arr.indexOf()
判斷是否包含某元素;