JS基本功 | JavaScript专题之数组 方法总结

  • Array.map()

 1、   map() 遍历数组

语法:

let new_array = arr.map(function callback(currentValue, index, array) { 
    // Return element for new_array 
}[, thisArg])

描述:

map 方法会给原数组中的每个元素都按顺序调用一次  callback 函数。callback 每次执行后的返回值(包括 undefined)组合起来形成一个新数组。 callback 函数只会在有值的索引上被调用;那些从来没被赋过值或者使用 delete 删除的索引则不会被调用。

callback 函数会被自动传入三个参数:数组元素,元素索引,原数组本身。

如果 thisArg 参数有值,则每次 callback 函数被调用的时候,this 都会指向 thisArg参数上的这个对象。如果省略了 thisArg 参数,或者赋值为 null 或 undefined,则 this 指向全局对象 。

map 不修改调用它的原数组本身(当然可以在 callback 执行时改变原数组)。

使用 map 方法处理数组时,数组元素的范围是在 callback 方法第一次调用之前就已经确定了。在 map 方法执行的过程中:原数组中新增加的元素将不会被 callback 访问到;若已经存在的元素被改变或删除了,则它们的传递到 callback 的值是 map 方法遍历到它们的那一时刻的值;而被删除的元素将不会被访问到。

 示例:

白话理解:

map不会直接改变数组,但是在callback函数中可以有改变原数组的操作,如增加某属性item["newkey"] = '123'、 删除某个index的项等;

在小程序中,需要this.setData({datas: newData}) 改变page的中data的变量,从而改变页面的渲染,所以常用var newData = data.map(() => { .....  return item})

原文地址:https://www.cnblogs.com/wuhaoquan/p/8780524.html