回顾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()判断是否包含某元素;