定义数组
let arr1 = [1, 2, 3, 4]
let arr2 = [
{name: 'lili', age: 10},
{name: 'lala', age: 18},
{name: 'dudu', age: 26}
]
函数的第一个参数是数组的每一项item,第二个参数是数组的索引(index),第三表示元素所在数组的全部数据(整个数组数据arr)
一、map
由原数组每一项调用一个函数之后,返回一个新的数组, 不改变原数组,且数组长度length不变,如果有判断条件,不符合的项将返回undefined
let map1 = arr1.map(x => x * 2); // [2, 4, 6, 8]
let map2 = arr2.map((item, index, arr) => {
if(item.age > 15){
return item.name
}
}) // [undefined, 'lala', 'dudu']
二、filter
一般用来筛选条件符合的元素,由原数组每一项调用一个过滤函数,由过滤函数返回的true或者false来决定该项是否可以到一个新的数组,返回新数组, 不改变原数组
let map2 = arr2.filter((item, index, arr) => {
return item.age > 15
}) // [{name: 'lala', age: 18}, {name: 'dudu', age: 26}
三、forEach
遍历,由原数组每一项调用一个函数,但是在它里面不能用return
,continue
,break
,返回值为undefined
let map1 = arr1.forEach((item, index, arr) => {
console.log(item) // 1 2 3 4
})
let arr3 = []
let map2 = arr2.forEach((item, index, arr) => {
if(item.age > 15) {
arr3.push(item.name)
}
})
console.log(arr3) // ['lala', 'dudu']