2017-10-18 15 views
0

je dois fusionner 2 objets AngularJS Im essayant avec angular.merge (obj1, obj2), mais ce n'est pas ce que je pensaisfusionner deux objets avec AngularJS

premier objet

// obj1 
{ 
    "0": { 
    "name": "340.jpg", 
    "bytes": 21955, 
    "link": "340.jpg?dl=0", 
    "icon": "page_white_picture.png" 
    }, 

    "1": { 
    "name": "341.pdf", 
    "bytes": 3394, 
    "link": "340.pdf?dl=0", 
    "icon": "page_white_acrobat.png" 

    } 

Deuxième objet

// obj2 
{ 
    "id_pro": "70", 
    "nuevo": "true", 
    "fecha_ser": "2017-10-18" 
} 

résultat attendu

// Merged 
{ 

    "0": { 
    "name": "340.jpg", 
    "bytes": 21955, 
    "link": "340.jpg?dl=0", 
    "icon": "icons64/page_white_picture.png", 

    "id_pro": "70", 
    "nuevo": "true", 
    "fecha_ser": "2017-10-18" 
    }, 

    "1": { 
    "name": "341.pdf", 
    "bytes": 3394, 
    "link": "340.pdf?dl=0", 
    "icon": "page_white_acrobat.png", 

    "id_pro": "70", 
    "nuevo": "true", 
    "fecha_ser": "2017-10-18" 

    } 

} 

Ajoutez le deuxième objet exactement dans chaque groupe du premier objet.

Est-ce possible avec angular.merge ou ai-je besoin d'une fonction propre? Merci

Répondre

1

Vous pouvez le faire en utilisant native javascript.

L'une des solutions comprend la méthode forEach en combinaison avec Object.assign pour fusion les propriétés.

let obj={ 
 
    "0": { 
 
    "name": "340.jpg", 
 
    "bytes": 21955, 
 
    "link": "340.jpg?dl=0", 
 
    "icon": "page_white_picture.png" 
 
    }, 
 
    "1": { 
 
    "name": "341.pdf", 
 
    "bytes": 3394, 
 
    "link": "340.pdf?dl=0", 
 
    "icon": "page_white_acrobat.png" 
 

 
    } 
 
}; 
 
let second={ 
 
    "id_pro": "70", 
 
    "nuevo": "true", 
 
    "fecha_ser": "2017-10-18" 
 
} 
 
Object.keys(obj).forEach(function(key){ 
 
    Object.assign(obj[key],second); 
 
}); 
 
console.log(obj);

1

Il suffit de faire une itération sur le premier objet

for(var i in obj1) { 
    angular.merge(obj1[i], obj2); 
} 
+0

Parfait !! Merci Keming –

0

Il est intéressant de noter qu'il ya plusieurs façons de itérer l'objet. Puisque vous travaillez avec AngularJS de toute façon, vous pouvez utiliser la méthode d'assistance angulaire: