搜尋

首頁  >  問答  >  主體

javascript - angular循環的時候取到的值是最後一個值

程式碼如下:

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出来的是不同的。
天蓬老师天蓬老师2709 天前825

全部回覆(2)我來回復

  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-07-05 11:07:07

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

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

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

    回覆
    0
  • PHP中文网

    PHP中文网2017-07-05 11:07:07

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

    回覆
    0
  • 取消回覆