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 }) 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]
[admin via ] javascript map()詳解已經有882次圍觀