最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

js深拷贝

来源:博客园


【资料图】

js深拷贝

在JavaScript中,有多种方法可以实现对象的深拷贝,下面介绍几种常用的方式:

  1. 手动遍历对象进行复制

    function deepCopy(obj) {  if (typeof obj !== "object" || obj === null) {    return obj;  }  let newObj = Array.isArray(obj) ? [] : {};  for (let key in obj) {    if (Object.prototype.hasOwnProperty.call(obj, key)) {      newObj[key] = deepCopy(obj[key]);    }  }  return newObj;}
  2. 使用JSON.stringify和JSON.parse进行深拷贝 注意:这种方式虽然简单,但是会忽略对象中的函数、循环引用等情况,需要谨慎使用

    function deepCopy(obj) {  return JSON.parse(JSON.stringify(obj));}
  3. 注意:这种方式虽然简单,但是会忽略对象中的函数、循环引用等情况,需要谨慎使用

    const _ = require("lodash");let obj = { a: 1, b: { c: 2 } };let newObj = _.cloneDeep(obj);

以上几种方式都可以实现对象的深拷贝,选择哪种方式取决于实际业务需求和数据结构。

相关qq学习群:910316886

关键词: