javascript - angular循環的時候取到的值是最後一個值
天蓬老师
天蓬老师 2017-07-05 11:05:07
0
2
796

程式碼如下:

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数组中userDtoName的值全部都是最后一个data的值。为什么。但是每一个循环中alert出来的是不同的。
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回覆(2)
曾经蜡笔没有小新

val 是對象,相當於一個指針,因此每次 push 進去的都是同一個對象

由於不知道你的 val 還有其他哪些屬性和作用,這裡只提供一個替換方案:push({...val, userDtoName: data})

用到了 ES6 的 ... spread 運算子。

洪涛

如果沒有看錯的話,你便利的是val.userAssetList,卻把val放進lay,每次都是一樣的啊,都是執行lay.push(val)

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!