在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)