jinmayamashita
9/18/2018 - 5:29 PM

deep copy

deep copy

deep copy example

wrong

// original arr
const arr = [
  { id:0, order:0 },
  { id:1, order:1 },
  { id:2, order:2 }
];

const copy = () => {
  // make copy arr
  const copyarr = arr.slice();
  copyarr[1].id = 7
  
  console.log(copyarr) // {id: 7, order: 1}
  console.log(arr) // {id: 7, order: 1}
}

correct

// original arr
const arr = [
  { id:0, order:0 },
  { id:1, order:1 },
  { id:2, order:2 }
];

const copy = () => {
  // make copy arr
  const copyarr = arr.map(item => Object.assign( {}, item) )
  copyarr[1].id = 7
  
  console.log(copyarr) // {id: 7, order: 1}
  console.log(arr) // {id: 1, order: 1}
}