forEach方法:作用循环遍历数组,接收两个参数,没有返回值。
第一个是一个回调函数;里面可以接收三个参数;第一个参数是数组里的元素,第二个是元素的索引,第三个是数组本身第二个参数是第一个函数this指向,不填默认指向window let arr = [1,2,3]; let obj = {a:1}; arr.forEach(function(item,index,arr){ console.log(item,index,arr,this) },obj) //打印结果:1 0 [1,2,3] {a:1} // 2 1 [1,2,3] {a:1} // 3 2 [1,2,3] {a:1}filter方法:作用是对数组基于遍历进行过滤筛选,接收两个参数,返回一个新数组
第一个是一个回调函数;里面可以接收三个参数;第一个参数是数组里的元素,第二个是元素的索引,第三个是数组本身第二个参数是第一个函数this指向,不填默认指向window筛选通过回调函数返回true和false进行筛选,不填筛选条件,默认返回undefined为false,新数组为[] let arr = [1,2,3,4,5]; let arr1 = [ { name:'a', age:1 }, { name:'b', age:2 }, { name:'c', age:3 } ] let newArr = arr.filter(function(item,index,arr){ return item>2; }) console.log(newArr)//[3,4,5] let newArr1 = arr.filter(function(item,index,arr){ return item.age!==2; }) console.log(newArr1)//[{name:'a',age:1},{name:'c',age:3}]map方法:作用是对数组基于遍历进行映射,接收两个参数,返回一个新数组
第一个是一个回调函数;里面可以接收三个参数;第一个参数是数组里的元素,第二个是元素的索引,第三个是数组本身第二个参数是第一个函数this指向,不填默认指向window let arr = [1, 2, 3, 4, 5] let a = arr.map(function (item, index, arr) { return item + 10; }) console.log(a, arr)//[11,12,13,14,15] [1,2,3,4,5] let arr1 = [ { age: 1, name: 'xx' }, { age: 2, name: 'ss' } ]; let b = arr1.map(function(item,index,arr){ return {age:item.age+10} }) console.log(b)//[{age:11},{age:12}]every方法:作用是对数组基于遍历进行判断,返回一个布尔值,数组全部满足条件返回true,否则返回false,接收两个参数
第一个是一个回调函数;里面可以接收三个参数;第一个参数是数组里的元素,第二个是元素的索引,第三个是数组本身第二个参数是第一个函数this指向,不填默认指向window let arr = [1,2,3,4,5]; let obj = {}; let flag = arr.every(function(item){ console.log(this) return item>0 },obj) let flag1 = arr.every(function(){ return item>3 }) console.log(flag,flag1)//true falsesome方法:作用是对数组基于遍历进行判断,返回一个布尔值,数组只要有一个满足条件就返回true,否则返回false,接收两个参数
第一个是一个回调函数;里面可以接收三个参数;第一个参数是数组里的元素,第二个是元素的索引,第三个是数组本身第二个参数是第一个函数this指向,不填默认指向window let arr = [1,2,3,4,5]; let obj = {}; let flag = arr.some(function(item){ console.log(item) return item>2 }) let flag1 = arr.some(function(item){ console.log(item,this) return item>5 }) console.log(flag,flag1) //true falsereduce方法:作用是对数组中所有元素调用指定回调函数,返回一个累计结果值,接收两个参数
第一个参数是一个回调函数;里面可以接收4个参数;第一个是初始值,第2个参数是数组里的元素,第3个是元素的索引,第4个是数组本身第二个参数填写了将作为回调函数的第一个值的初始值 let arr = [2,3,4]; let num = 1; arr.reduce(function(prevValue,currentValue,currentIndex,arr){ console.log(prevValue,currentValue,currentIndex) },num) //打印 // 1 2 0 [2,3,4] // undefined 3 1 [2,3,4] // undefined 4 2 [2,3,4] //传入num会作为第一次循环的prevValue,如果不传入num第二个参数,则prevValue会取数组第一项2,currentValue为3,currentIndex为1; //基本用法 数组累加 let sum = arr.reduce(function(prev,current){ return prev+current; }) console.log(sum)//9