javascript - 为什么这个映射函数不改变原始数组中的值?

标签 javascript arrays ecmascript-6

这里是有问题的代码:

const array = [
  1, 2, 3
]

array.map(item => {
  item = item + 1
})

console.log(array)

我认为 map 方法中的 item (第一个)参数是对数组中原始项目的引用,直接改变它会改变内容第一个数组的...这不是真的吗?

最佳答案

您的数组包含基元类型 元素(此处为整数)。原始类型的变量不能通过它的引用来改变。例如,如果数组的元素是对象,则可能发生变异,如下所示:

var array = [{val: 1}, {val: 2}, {val: 3}];
array.map(item => {item.val = item.val + 1});
console.log(array);

关于javascript - 为什么这个映射函数不改变原始数组中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48166706/

相关文章:

javascript - 如何使用 JavaScript 获取文本输入字段的值?

javascript - 将 Markdown 解析委托(delegate)给客户端有什么缺点?

javascript - 有问题的 JQuery 悬停动画

c++ - 使用C++11的begin()和end()函数通过参数确定数组维数

javascript - 如何循环嵌套数组?

javascript - 检测 ES2015 代码是由 babel 转译的还是本地运行的?

javascript - 如何测试浏览器是否支持<input capture/>

php - 如何使用 codeigniter 加载自定义配置文件?

javascript - JS回文校验 "every"辅助方法分解

javascript - React 路由器问题未捕获错误 : Invariant Violation: Element type is invalid: expected a string (for built-in components)