javascript - 数组映射函数不改变元素

标签 javascript arrays array.prototype.map

在 JavaScript 中,我有一个数组,它是

array = [true, false]

在某些情况下,我试图初始化这个数组

array.map(item => {
   item = false
})

运行上面的代码后,数组并没有改变,还是[true, false],那么是不是.map有时候不靠谱呢?


还有一个问题: 运行下面的代码后,数组发生了变化。为什么它在这种情况下有效?

let array = [{id:1, checked: false}, {id:2, checked:true}]
array.map(item => {
    item.checked = true
})

数组变为 [{id:1, checked: true}, {id:2, checked:true}]

最佳答案

JavaScript 数组 map() 方法

*)创建一个新数组,其中包含为每个数组元素调用一个函数的结果,并按顺序为数组中的每个元素调用一次提供的函数。

注意:map()方法对没有值的数组元素不执行函数,不改变原数组。

more details

关于javascript - 数组映射函数不改变元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42242257/

相关文章:

javascript - 如何创建在线绘图应用程序

javascript - ReactJS + 通量 : Action received twice when I route between components

javascript - 使用嵌套在 .map 中的 .find 来构建对象数组

c - 打印二维数组时出现 fatal error

java - 无需迭代即可将 List<Integer> 转换为 int[] ( array ) 的有效方法

javascript - React .map 使用 Fetch API 返回未定义

Javascript原型(prototype)和修改原始对象

javascript - Knockoutjs 立即验证

Bootstrap 中的 Javascript 元素不起作用

arrays - 有没有办法不必两次初始化数组?