javascript map()详解

3次阅读

共计 998 个字符,预计需要花费 3 分钟才能阅读完成。

map()
不会对空数组进行遍历
let arr = []
let newArr = arr.map((item, i, arr) => {
//item: 遍历数组的每一项,i: 数组当前项的下标,arr 原数组
console.log(`item—${item}, i—${i}, arr—${arr}`)
return item + i
})
console.log(newArr) //[]

** 函数内 console 没有执行,证明数组为空是并不执行遍历
返回一个新数组,长度等于原数组长度
let arr = [1, 2, 3]
let newArr = arr.map((item, i, arr) => {
//item: 遍历数组的每一项,i: 数组当前项的下标,arr 原数组
console.log(`item—${item}, i—${i}, arr—${arr}`)
return item + i
})
console.log(newArr) //[undefined, undefined, undefined]

** 即便函数返回空 结果数组的长度和原数组是一致的
不会改变原数组
let arr = [1, 2, 3]
let newArr = arr.map((item, i, arr) => {
//item: 遍历数组的每一项,i: 数组当前项的下标,arr 原数组
console.log(`item—${item}, i—${i}, arr—${arr}`)
return item + i
})
console.log(newArr,arr) //[1, 3, 5]

map() 参数必须是函数
let arr = [1, 2, 3]
let obj = {
1: 2
}
let arr1 = [1, 2]
let str = 123
// let newArr = arr.map(obj)
let newArr1 = arr.map(arr1)
let newArr2 = arr.map(str)

函数接收三个参数

item (必须) 当前遍历项
i(非必须)当前遍历项下标
arr (非必须) 原数组

完整 demo
let arr = [1, 2, 3]
let newArr = arr.map((item, i, arr) => {
//item: 遍历数组的每一项,i: 数组当前项的下标,arr 原数组
console.log(`item—${item}, i—${i}, arr—${arr}`)
return item + i
})
console.log(newArr) //[1, 3, 5]

您的点赞是我的动力 谢谢!

正文完
 0