数组map、filter、forEach笔记

定义数组

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

遍历,由原数组每一项调用一个函数,但是在它里面不能用returncontinuebreak,返回值为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']
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值