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.