Extrait de code suivant:
toBarChart = function (d){ var tData = [{values: []}]; angular.copy(d, tData[0].values) return tData; }
4 Réponses :
Vous pouvez essayer la fonction cloneDeep
de lodash
.
Lequel est _
? lodash
ou underscore
?
Utilisez simplement l ' Object.assign (...) qui copiera toutes les valeurs des propriétés de l'objet source vers l'objet cible.
Voyons un exemple:
toBarChart = function (d){ var tData = [{values: []}]; Object.assign(d, tData[0].values) return tData; }
Dans votre cas, je suppose que vous pouvez faire ce qui suit:
(function() { let originalData = { title: 'example value' }; let targetData = {}; Object.assign(targetData, originalData); targetData.title = 'updated value'; console.log('source and target', { original: originalData.title, target: targetData.title }); })();
Object.assign
est également le moyen le plus rapide de cloner un objet: jsben.ch/bWfk9
lodash est idéal pour la copie profonde dans Angular
import * as _ from 'lodash'; let newCopy = _.cloneDeep(objectToBeCopied);
Si la source est un tableau d'objets , en utilisant map:
Object.assign({}, sourceObject)
Ou la source est un objet : p >
let clonedArray = sourceArray.map(x => Object.assign({}, x));
Copie possible de Quel est le le moyen le plus efficace de cloner en profondeur un objet en JavaScript?
var deepClone = JSON.parse (JSON.stringify (obj)); C'est l'un des moyens les plus simples dans JS natif de cloner en profondeur un objet.