ES6数组新增的几个方法:
1. forEach()
//forEach()遍历数组,无返回值,不改变原数组 var arr=[1,2,3,4] arr.forEach((item,index,arr)=>{ console.log(item); //1,2,3,4 })
2. map()
//map()遍历一个数组,返回新数组,不改变原数组的值 var arr=[1,2,3,4] arr.map((item,index,arr)=>{ return item*10; //返回新数组10,20,30,40 })
3. filter()
//过滤数组中不满足条件的值,返回一个新数组,不改变原数组的值 var arr=[1,2,3,4] arr.filter((item,index,arr)=>{ return item>2; //新数组为[3,4] })
4. reduce()
//reduce让数组的前后两项进行某种计算,然后返回其值,并继续计算。不改变原数组,返回计算的最终结果,从数组的第二项开始遍历。 var arr=[1,2,3,4] arr.reduce((result,item,index,arr)=>{ console.log(result); // 1 3 6 result为上次一计算的结果 console.log(item); // 2 3 4 console.log(index); // 1 2 3 return result+item; // 10 })
5.some()
//遍历数组每一项,有一项返回true,则停止遍历,结果返回true。不改变原数组 var arr=[] arr.some((item,index,arr)=>{ return item>3; //结果为true })
6. every()
//遍历数组每一项,每一项返回true,则最终结果为true。当任何一项返回false时,停止遍历,返回false。不改变原数组 var arr = [1,2,3,4]; arr.every((item,index,arr) => { return item > 1 //结果为false })
ES6数组去重
1.方法一
function unique(arr){ //定义常量res,值为一个map对象实例 const res=new map(); //返回arr数组过滤后的结果,结果为一个数组 //过滤条件是,如果res中没有某个键,就设置这个值的键为1 return arr.filter((a) =>!res.has(a)&& res.set(a,1)) }
2. 方法二
//Array.from() 方法从一个类似数组或可迭代的对象(包括 Array,Map,Set,String,TypedArray,arguments 对象等等) 中创建一个新的数组实例 function unique(){ return Array.from(new Set(arr)); }