map
map是什么?
map() 方法用于遍历一个数组,并且创建一个新数组,不会修改原数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值。
map() 是返回一个新数组,当你不使用返回新数组时,请使用forEach或for-of
怎么用?
首先map()里面必须要有一个回调函数functiong,这个回调函数就是用来处理调用的数据的
arr.map(function(){})
回调函数里可以传入三个参数,其中有一个是必须传入的(item,作为循环遍历数组的每一个数据的值),其他两个可以选择性的传入,index是索引下标
arr.map(function(item,index){})
需要在回调函数内写return,返回数据
let arr = [1,2,3,4,5] let newArr = arr.map((item,index)=>{ // console.log(item) //1,2,3,4,5 // console.log('index',index) //0,1,2,3,4 return 2*item }) console.log(newArr) //2,4,6,8,10
forEach
forEach是什么
forEach() 方法对数组的每个元素执行一次给定的函数。他不象map一样可以有返回值,不能使用
let newArr = arr.forEach(item=>{}) //这是错误的用法,newArr 是undefined
forEach与for循环一样,都是对数组进行遍历,forEach是对for(let i=0;i<arr.leng;i++){}
的简写
用法
let arr = [1,2,3,4,5] arr.forEach(item=>{ console.log(item*2) })
- 正确:如果是基本数据类型,forEach不会改变原数组的值 ,如果是 引用数据类型,则会修改原数组的值
let arr2=[5] arr2.forEach(item=>{ item = item*2 }) console.log(arr2) //[5] let arr3=[{a:5}] arr3.forEach(item=>{ item.a = item.a*2 }) console.log(arr3) //[a:10]