es6 数组扩展

es5中数组常见遍历方法

let arr=[1,2,3];

for循环
for(let i=0;i<arr.length;i++){
    console.log(arr[i]);
}
 
结果: 1,2,3

// forEach 循环(不可使用  break continue  所以不可中途跳出循环)
arr.forEach(function(elem,index,array){
    console.log(elem,index,array);
});
结果:

 
// map循环
arr.map(function(value){
    console.log(value);
})
 
map可以处理数组每个元素  结果返回一个新数组  不改变原数组
 
let result = arr.map(function (value) {
    console.log(value);
    value += 1;
    return value
})
console.log(arr,result)
结果:   1,2,3

 
过滤数组  return 过滤的数组不会改变数组内容   只会改变数组长度
arr.filter(function(value){
    console.log(value);
})

let newsArr=arr.filter(function(value){
    return value==2
})
console.log(arr,newsArr);

some函数 只要有一个元素符合条件   就返回true     否则返回false

let result=arr.some(function (value){

  console.log(value);

return value==2

})

 console.log(arr,result);  

结果: 1,2,3     true


 
every函数 数组中每个元素是否符合条件   就返回true     否则返回false
 
 

let result=arr.every(function (value){

  console.log(value);

return value==2

})

 console.log(arr,result);  

结果: 1,2,3     false

 
 
 //reduce
接受一个函数  和一个参数   参数为初始值
函数接收四个参数     第一个  prev      上一次调用函数的返回值 
                                  第二个   cur       当前正在处理的数组元素 
                                  第三个   index    当前处理的元素索引   
                                  第四个   array    是原数组   
 
//累加求和

let arr=[1,2,3];
let sum = arr.reduce(function(prev,cur,index,array){
return prev+cur
},0);
console.log(sum);

 
 
//求数组最大值

let arr=[1,2,10,3];
let max = arr.reduce(function(prev,cur){
return Math.max(prev,cur)
},0);
console.log(max);    //10

数组去重
let arr=[1,2,10,3,3,2,10,11,8,7,2];

let newarr=arr.reduce(function(prev,cur){
prev.indexOf(cur)== -1 && prev.push(cur)
return prev

},[])
console.log(newarr);//

[1, 2, 10, 3, 11, 8, 7]



 

 find()  方法返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined

var arr=["1","hello","hedan","3232"];


let a=arr.find((value, index, arr) =>{
return value=="hedan"
})
console.log(a)

结果:  "hedan"

indIndex()函数也是查找目标元素,找到就返回元素的位置,找不到就返回-1。
let a=arr.findIndex((value, index, arr) =>{
return value=="hedan"
})
console.log(a)   结果//2

// for(let item of arr){
// console.log(item)
// }

values()遍历数组每一项

// for(let item of arr.values()){
// console.log(item)
// }

  .keys()遍历数组索引
// for(let item of arr.keys()){
// console.log(item)
// }

entries()  遍历数组索引和每一项

// for(let [index,item] of arr.entries()){
// console.log(index,item)
// }

 
原文地址:https://www.cnblogs.com/ddqyc/p/13521665.html