map方法到底会不会改变原始数组?
有时候map方法会改变原数组,但我之前明明记得map方法是不会改变原数组,但是我在实际项目中发现map是会改变原数组的。amazing,那么让我们一探究竟。
Array.prototype.map()
map()
方法创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值。
var new_array = arr.map(function callback(currentValue[, index[, array]]) { // Return element for new_array }[, thisArg])
MDN上清清楚楚说 map不修改调用它的原数组本身(当然可以在 callback
执行时改变原数组)
因此假设 数组是值类型的,则不会改变原数组,
假设数组是引用类型的数组,如果改变数组选项中的引用类型的值则原数组会发生改变。