前端開發遇到的bug 關於指標

2021-08-30 13:16:50 字數 1288 閱讀 9795

let oldlist =[,

];let newlist =

;let map =

;oldlist.

foreach

((item)

=>);

// newlist 出現了重複 oldlist 最後一條資料的情況

// [

// ,

//

// ]

// 這次在遍歷過程中列印一下 map 看一看

// 解決的方法:改變 map 宣告的位置

// let map = {};

oldlist.

foreach

((item)

=>

;// 修改後將 map 的宣告拿進來

map[

'newname'

]= item.oldname;

map[

'newage'

]= item.oldage;

newlist.

push

(map);}

);// [

// ,

//

// ]

這裡出現這個問題的原因是map是指向{}的指標,真正被改變的不是map而是記憶體中map指向的位置也就是{},因此map在遍歷前宣告的話就會導致所有的newlist資料都指向這個只宣告了一次的map,然後這個唯一的map指向了在記憶體中唯一的{}

mapnewlist--

-因此需要每次遍歷就宣告一次map,這樣就可以在記憶體中開闢乙個新的map作為指向新{}的唯一指標,而不是所有的newlist資料都指向乙個{}

mapnewlist

參考《基本資料型別和引用型別的區別詳解》

開發中遇到的詭異的bug

今天我們伺服器組遇到個問題 我們的服務是從kafka裡面取出資料,然後把offset儲存到ssdb中,每個topic和partition都對應ssdb中不同的key,服務啟動之後,每次kafka資料更新我們這邊收到訊息,然後儲存之後就發現ssdb的值偶爾是 2,這就奇怪了,最開始我們是在 中列印儲存...

前端開發遇到的小問題

checkbox全選全不選 prop用於操作元素的固有屬性 attr用於自定義屬性 all click function else iframe內的元素操作外部元素 header pic img window.parent.document attr src headpicsrc 操作iframe父...

微信企業號開發遇到的bug

a.1 開啟wx.startrecord 介面後touchend事件無法觸發 touchstart touchcancel,我也不知道為什麼,就是這麼奇葩 a.2 某些機型錄音超時不會onvoicerecordend方法 a.3 iphone的語音不相容android 解決方案 a.1 沒有太完美的...