js对象复制,深拷贝与浅拷贝

316 阅读1分钟

1、用 reduce 实现一行代码深拷贝对象/数组 1)一行实现深拷贝数组

const deepCopyArr = arr => arr.reduce((acc, cur) => (
  cur instanceof Array ? [...acc, deepCopyArr(cur)] : [...acc, cur]
), [])

2)一行实现深拷贝对象

const deepCopyObj = obj => Object.entries(obj).reduce((acc, [key, value]) => (
  typeof value === 'object' ? { ...acc, [key]: deepCopyFun(value) } : { ...acc, [key]: value }
), {})