在JavaScript中,我使用Array方法'map',并观察到它正在修改调用它的数组。但我读过的文档不应该是这样吗?数组方法'地图'修改它被调用的数组?
“请注意,map()返回一个新数组:它不会修改它在其上调用的数组” - JavaScript - 权威指南第6版。
var arr = [{x:1},{y:2},{z:3}]
var arr1 = arr.map(function(obj) {
for (var prp in obj) {
obj[prp] *= obj[prp];
}
return obj;
})
// function to print the array
printArray = function(arr) {
for (var i = 0; i < arr.length; i++) {
for (prp in arr[i]) {
console.log(prp, arr[i][prp])
}
}
}
输出
printArray(arr1)
x 1
y 4
z 9
printArray(arr)
x 1
y 4
z 9
正如我们可以看到原始数组 'ARR' 也被修改?
这是什么文档? –
您传递给map的函数正在修改值并返回它。 – Ninad