javascript - angular循環(huán)的時(shí)候取到的值是最后一個(gè)值
問題描述
代碼如下:
angular.forEach(data.body.data.assets,function(val,ind){
angular.forEach(val.userAssetList,function(data,index){val.userDtoName = data;// alert(data.userDTO);if(val.assetCount != val.availableCount){ lay.push(val);} }) }) 最后我的lay數(shù)組中userDtoName的值全部都是最后一個(gè)data的值。為什么。但是每一個(gè)循環(huán)中alert出來的是不同的。
問題解答
回答1:val 是對(duì)象,相當(dāng)于一個(gè)指針,因此每次 push 進(jìn)去的都是同一個(gè)對(duì)象
由于不知道你的 val 還有其他哪些屬性和作用,這里僅提供一個(gè)替換方案:push({...val, userDtoName: data})
用到了 ES6 的 ... spread 運(yùn)算符。
回答2:如果沒有看錯(cuò)的話,你便利的是val.userAssetList,卻把val放進(jìn)lay,每次都是一樣的啊,都是執(zhí)行l(wèi)ay.push(val)
相關(guān)文章:
1. javascript - 微信網(wǎng)頁開發(fā)從菜單進(jìn)入頁面后,按返回鍵沒有關(guān)閉瀏覽器而是刷新當(dāng)前頁面,求解決?2. python - TypeError: tryMsgcode() takes exactly 2 arguments (0 given)3. 求救一下,用新版的phpstudy,數(shù)據(jù)庫過段時(shí)間會(huì)消失是什么情況?4. mysql - C#連接數(shù)據(jù)庫時(shí)一直這一句出問題int i = cmd.ExecuteNonQuery();5. mysql - ubuntu開啟3306端口失敗,有什么辦法可以解決?6. android - 安卓做前端,PHP做后臺(tái)服務(wù)器 有什么需要注意的?7. mysql replace 死鎖8. 環(huán)境搭建 - anaconda 創(chuàng)建python2.7環(huán)境中打開編譯器確是3.6版本9. extra沒有加載出來10. python - 數(shù)據(jù)與循環(huán)次數(shù)對(duì)應(yīng)不上
