javascript - La valeur obtenue lors d'une boucle angulaire est la dernière valeur
天蓬老师
天蓬老师 2017-07-05 11:05:07
0
2
820

Le code est le suivant :

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

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

répondre à tous(2)
曾经蜡笔没有小新

val est un objet, équivalent à un pointeur, donc le même objet est poussé à chaque fois

Comme je ne connais pas les autres attributs et fonctions de votre val, voici un seul remplacement : push({...val, userDtoName: data})

Utilisation de l'opérateur de propagation de l'ES6.

洪涛

Si vous le lisez correctement, la commodité dont vous disposez est val.userAssetList, mais vous mettez val dans lay C'est la même chose à chaque fois, et vous exécutez toujours lay.push(val)

.
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal