在Foreachloop它编辑两个循环

好的,我是 javascript 新手,出于某种原因,这些数组完全相同,但我只编辑一个,有什么想法吗?

let array = ["one", "two", "three", "four"]
let newArray = array
newArray.forEach((element,i) => {
  newArray[i] = element+"_done"
})

console.log(array)
console.log(newArray)

回答

别担心,这是一个非常简单的修复。基本上当你做

let array = ["one", "two", "three", "four"]
let newArray = array

您没有创建新数组,而是创建了另一个指向现有数组的指针。这是一个非常简单的修复。别担心,当我开始使用 javascript 时,我遇到了完全相同的问题。只需使用传播语法,这对于了解更多信息非常有用。https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax以及研究对象和数组解构,因为它非常有用。Fireship io 在这方面做了一个非常好的教程。他的视频都很好看,而且制作精良。https://www.youtube.com/watch?v=UgEaJBz3bjY

无论如何,这里是修复:

let array = ["one", "two", "three", "four"]
let newArray = [...array]
newArray.forEach((element,i) => {
  newArray[i] = element+"_done"
})

console.log(array)
console.log(newArray)


以上是在Foreachloop它编辑两个循环的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>