JS 陣列中push物件,覆蓋問題

2022-07-25 12:09:16 字數 1287 閱讀 7195

發現將物件push進陣列,後面的值會覆蓋前面的值,最後輸出的都是最後一次的值。其實這一切都是引用資料型別惹的禍。

如果你也有類似問題,可以繼續看下去哦。

下面**模擬:

將json物件的每個鍵值對,單獨搞成物件,再賦值給陣列,最後輸出陣列。結果陣列應該是有三個物件。(for-in用於物件遍歷)12

3456

78var json = ;

var data = {};//在外面定義物件

var datas = ;

for(keyinjson)

console.log(datas)

輸出結果:

原因:

我們遍歷json物件時(var json = ;),在迴圈外面定義乙個物件,用於儲存分離的json物件。

解決方法:

每次迴圈的時候,新建乙個物件12

3456

78var json = ;

var datas = ;

for(keyinjson) ;//每次迴圈的時候,新建物件

結果:

JS 原生 push物件到陣列中遇到的問題

在做小程式開發時,需要將乙個物件push到陣列中,第一次寫法是 for var j in that.data.goods 定義乙個接受物件 console.log that.data.goods j id 獲取了所選商品的id值 console.log that.data.cart.list h 獲...

陣列push被覆蓋

之前在寫 定義個新的陣列,每次將最新的物件push到陣列中的時候被最後一條 覆蓋的機率特別大,這次終於明白是為什麼了。防止被覆蓋有以下幾種辦法 辦法1.this.users.foreach element 這裡面的關鍵點是重新例項化清空。this.ts new useritem 能用this,是因為...

js陣列的push操作

今天需要將乙個物件push到乙個物件陣列中 const tablecolumns const operationcolumns 刪除 將operationcolumns 的物件push進去tablecolumns 一開始的寫法 const columns oprtype 3 tablecolumns...