什么是angular7中angular.copy的替代方案

时间:2019-03-21 14:14:37

标签: angularjs angular

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

4 个答案:

答案 0 :(得分:2)

只需使用Object.assign(...),它将所有属性值从源复制到目标对象。

让我们看一个例子:

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

在您的情况下,我认为您可以执行以下操作:

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

答案 1 :(得分:0)

您可以尝试_.cloneDeep函数

答案 2 :(得分:0)

lodash非常适合在Angular中进行深度复制

import * as _ from 'lodash';

let newCopy = _.cloneDeep(objectToBeCopied);

答案 3 :(得分:0)

如果源是对象数组,请使用地图:

let clonedArray = sourceArray.map(x => Object.assign({}, x));

或者来源是一个对象

Object.assign({}, sourceObject)