es6数组map,reduce,filter,findIndex,forEach,some,every

  1. map(映射)1个对一个 进去什么最后return 什么 不会改变原数组,返回一个新的数组,对应参数:item 每次的值,当前索引,原来数组 arr
 var arr=[1,2,3,4];
 console.log( arr.map((n)=>n*n) );//[1, 4, 9, 16]
 console.log( arr.map((n)=>n-1) );//[0, 1, 2, 3]

2.reduce (汇总) 1堆对一个 求和或者求平均数

let store = [22,44,33,56,70,83,80]
let total = store.reduce((temp,item,index)=>{
//temp是每次的临时变量是第n次和第n+1次的临时和,item是每次要往上加的值,index是每次循环的index
	console.log(temp,item,index)
 	return temp+item;
})
console.log(total)

要是求平均数 就应该再最后一次时用总数除以数组的长度。

let store = [22,44,33,56,70,83,80]
let total = store.reduce((temp,item,index)=>{
	//temp是每次的临时变量是第n次和第n+1次的临时和,item是每次要往上加的值,index是每次循环的index
	console.log(temp,item,index)
	if(index!=arr.lenth-1){//不是最后一次
		return temp+item;
	}else{//是最后一次
		return (temp+item)/arr.length;
	}
})
console.log(total)

3.filter (过滤器) 通过返回true或者false来确认最终的结果

let num = [2,4,76,87,35,66];
let result = num.filter(item=>item%3===0)
console.log(result);

4.findIndex (索引值) find方法的回调函数可以接受三个参数,依次为当前的值、当前的位置和原数组。

let arr = [1, 4, -5, 10]
let num = arr.findIndex((value,index,arr) => value < 0)  
console.log(num) // 2

value代表这个数组的每一项,1,4,-5,10。index代表每一项的索引值,arr代表这个数组[1, 4, -5, 10],然后我们需要返回的是<0的这一项的索引值,即是2了。

5.forEach 循环 (迭代)

//forEach遍历数组,无返回值,不改变原数组,仅仅只是遍历
let arr = [2,3,4,5]
arr.forEach(item=>console.log(item))

6.every

let arr = [1,2,3,4];
let flag= arr.every((item,index,arr) =>item > 1 //结果为false
)

//遍历数组每一项,每一项返回true,则最终结果为true。当任何一项返回false时,停止遍历,返回false。不改变原数组

7.some

var arr = [1,2,3,4];
let num =arr.some((item,index,arr) => {
	console.log(item)
	return item > 1 //结果为false
})
console.log(num)

//遍历数组每一项,有一项返回true,就返回true,当任何一项返回true时,则停止遍历,返回true;

总结:
some、every返回true、false。
map、filter返回一个新数组。
reduce让数组的前后两项进行某种计算,返回最终操作的结果。
forEach 无返回值。
这几个都不改变原数组。

你可能感兴趣的:(es6)