let myList = ['pop tarts', 'ramen', 'chips', 'salsa', 'coffee']
let myCart = []
myList.forEach((item) => {
let poppedItem = myList.pop()
myCart.push(poppedItem)
console.log(myList)
console.log(myCart)
})
// 執行此代碼時,不是將所有專案從“myList”移動到“myCart”,而是在僅移動 3 個專案后退出。我完全不知道為什么-
uj5u.com熱心網友回復:
嘗試這個
let myList = ['pop tarts', 'ramen', 'chips', 'salsa', 'coffee']
let myCart = Array.from(myList);
myList = []
console.log(myList)
console.log(myCart)
uj5u.com熱心網友回復:
該行為是預期的,因為您正在迭代陣列并同時修改它。
- 第 0 步:item = 'pop tarts', 'coffee' 被移除,myList = ['pop tarts', 'ramen', 'chips', 'salsa']
- 第 1 步:item = 'ramen', 'salsa' 被移除,myList = ['pop tarts', 'ramen', 'chips']
- 第 2 步:item = 'chips', 'chips' 被移除,myList = ['pop tarts', 'ramen']
您已經訪問了陣列的所有元素,因此forEach結束,有關更多資訊,您可以查看我提供的包含Modify_the_array_during_iteration段落的 mozilla 檔案鏈接。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/354264.html
標籤:javascript 数组 功能 foreach
下一篇:如何創建作為變數值陣列的變數?
