javascript无法将数据重新分配给map()中的数组

标签 javascript


let obj2 = {
  level2:{
    data:"data"
  }
}

let obj2Array  = [obj2,obj2,obj2];
obj2Array.map(obj=>{
  obj = obj.levle2.data
});
console.log(obj2Array)

我期待的是["data","data","data"]。但我仍然得到了原始数据。 我知道我可以使用 forEach() 来实现这一点,但为什么我不能在 map() 中重新分配元素?

最佳答案

因为 .map() 不会改变原始数组,它返回一个新数组,所以你应该这样做:

let obj2Array = [obj2,obj2,obj2];
obj2Array = obj2Array.map(obj=>{
  obj = obj.levle2.data
});
console.log(obj2Array)

关于javascript无法将数据重新分配给map()中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60257416/

相关文章:

javascript - 在我的图表中画圈,从圈中获取节点

javascript - 嵌套列表项上的单击事件每个都有自己的单击处理程序

javascript - HTML 代码 & 不通过 JavaScript 中的替换进行更改

javascript - 我能确定 array.slice() 总是和 array.slice(0) 一样工作吗?

javascript - 非常敏感的 onmouseout 行为

c# - 将html内容保存到数据库

Javascript 比较运算符字符串和数字

javascript - 为什么 Δ 不是 JavaScript 中的有效标识符?

javascript - Angular UI-Router - 子状态和父状态中的参数返回错误的模板

javascript - 动态创建的 HTML 表格打开新页面