2
votes

Quelle est l'alternative à angular.copy dans angular7?

Extrait de code suivant:

toBarChart =  function (d){
  var tData = [{values: []}];
    angular.copy(d, tData[0].values)
  return tData;
}


2 commentaires

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.


4 Réponses :


0
votes

Vous pouvez essayer la fonction cloneDeep de lodash .


1 commentaires

Lequel est _ ? lodash ou underscore ?



3
votes

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
  });
})();


1 commentaires

Object.assign est également le moyen le plus rapide de cloner un objet: jsben.ch/bWfk9



0
votes

lodash est idéal pour la copie profonde dans Angular

import * as _ from 'lodash';

let newCopy = _.cloneDeep(objectToBeCopied);


0 commentaires

0
votes

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));


0 commentaires