JS中实现数组和对象深拷贝的4种方法

这篇具有很好参考价值的文章主要介绍了JS中实现数组和对象深拷贝的4种方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、数组深拷贝的4种方法

1. 使用JSON.parse()和JSON.stringify():

const arr1 = [1, 2, 3, 4];

const arr2 = JSON.parse(JSON.stringify(arr1));

2. 使用Array.from():

const arr1 = [1, 2, 3, 4];

const arr2 = Array.from(arr1);

3. 使用扩展运算符:

const arr1 = [1, 2, 3, 4];

const arr2 = [...arr1];

4. 使用Array.map():

const arr1 = [1, 2, 3, 4];

const arr2 = arr1.map(item => item);

二、对象深拷贝的4种方法

1. 使用JSON.parse()和JSON.stringify():

// 首先定义一个对象

let obj = {

name: 'tom',

age: 18

};

// 实现深拷贝

let deepCopy = JSON.parse(JSON.stringify(obj));

2. 使用Object.assign():

// 定义一个对象

let obj = {

name: 'tom',

age: 19

};

// 深拷贝

let deepCopy = Object.assign({}, obj);

3. 使用ES6的扩展运算符:

// 定义一个对象

let obj = {

name: 'tom',

age: 20

};

// 深拷贝

let deepCopy = {...obj};

4. 使用lodash的cloneDeep():

// 定义一个对象

let obj = {

name: 'tom',

age: 21

};

// 引入lodash

import _ from 'lodash';

// 深拷贝

let deepCopy = _.cloneDeep(obj);文章来源地址https://www.toymoban.com/news/detail-623399.html

到了这里,关于JS中实现数组和对象深拷贝的4种方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • js在数组对象中添加和删除键值对(对象属性)的方法

    添加 1.Object.assign():用法-Object.assign(源对象, {要添加的键值对}) 2.拓展运算符(...):用于取出参数对象所有可遍历属性然后拷贝到当前对象 3.object[key] = value:直接给新的key赋值 删除 1.将属性设置为 undefined:属性本身仍将存在于对象中,它还会改变原始对象。 2.使用 delete 操

    2024年02月14日
    浏览(50)
  • 〖大前端 - 基础入门三大核心之JS篇㉔〗- JavaScript 的数组的常用方法 (一)

    当前子专栏 基础入门三大核心篇 是免费开放阶段 。 推荐他人订阅,可获取扣除平台费用后的35%收益,文末名片加V! 说明:该文属于 大前端全栈架构白宝书专栏, 目前阶段免费开放 , 购买任意白宝书体系化专栏可加入 TFS-CLUB 私域社区。 福利:除了通过订阅\\\"白宝书系列专

    2024年02月07日
    浏览(55)
  • 【Js篇】JS复制一个对象

    在 JavaScript 中,如果直接将一个对象赋值给另一个变量,那么实际上赋值的是该对象的引用(即指向该对象的内存地址),而不是将该对象复制一份赋值给另一个变量。这意味着如果修改其中一个变量的属性,另一个变量的属性也会被修改。解决这个问题的方法是实现对象的

    2024年02月11日
    浏览(36)
  • JS复制一个对象

    在JavaScript中,复制一个对象可以使用多种方法。下面详细说明几种常用的方法,并给出相应的示例代码: 1. 使用扩展运算符(Spread Operator): 使用扩展运算符可以将一个对象的属性复制到另一个对象中。 示例代码: 2. 使用Object.assign方法: Object.assign方法可以将一个或多个

    2024年02月12日
    浏览(39)
  • Three.js教程:对象克隆、复制

    推荐:将 NSDT场景编辑器 加入你的3D工具链 其他系列工具: NSDT简石数字孪生 Threejs大多数对象都有克隆 .clone() 和复制 .copy() 两个方法,点模型 Points 、线模型 Line 、网格网格模型 Mesh 一样具有这两个方法。 A.copy(B) 表示B属性的值赋值给A对应属性。 N = M.clone() 表示返回一个和

    2024年02月08日
    浏览(46)
  • 【JS】js数组分组,javascript实现数组的按属性分组

    项目代码中有很多时候需要按一定的条件实现按属性分组 你可以使用JavaScript的 Array.prototype.reduce() 方法来将数组分组。这是一种高级的方法,它可以将数组元素组合成一个单值。在这种情况下,你可以使用它来把数组元素放到一个对象中,其中对象的键是分组的条件,值是所

    2023年04月08日
    浏览(46)
  • JavaScript实现点击复制(JS访问剪贴板相关)

    一、具体代码 ​ 网页前端开发中有时会出现这样的场景:让用户点击某个按钮,然后就能直接复制对应的文本内容,让用户可以将文本内容粘贴到想要粘贴的地方,常用于分享功能模块中。如果想要实现这种效果就需要我们去访问用户的剪贴板,然后把想要复制的内容写入

    2024年02月11日
    浏览(39)
  • JS实现深拷贝的4种方法

    本文主要给大家介绍了关于JS实现深拷贝的4种方式,深拷贝是指将一个对象完整地拷贝一份,不受原对象影响,文中通过示例代码介绍的非常详细,需要的朋友可以参考下 深拷贝:在堆内存中重新开辟一个存储空间,完全克隆一个一模一样的对象; 浅拷贝:不在堆内存中重新开辟

    2024年02月04日
    浏览(36)
  • JS对象-数组(Array)

    1.        arr1.concat(arr2,arr3..) 合并数组 2.        arr1.join(\\\"指定字符串\\\"); 将数组按指定字符串拼接成一个新的字符串             arr1.toString() 转字符串,默认,分割 无法指定 3.    arr1.pop() 删除最后一个元素         arr1.push(\\\"元素\\\") 在结尾添加元素(可多个) 4.       

    2024年02月11日
    浏览(45)
  • JS对象转数组

    一、JS对象转数组方法如下(不考虑for相关遍历):         1.[...res]         2.Array.from(res)         3.Object.values(res)         4. Array.prototype.slice.call(res) 二、具体使用         1.[...res]           2. Array.from(res)         3. Object.values(res) 4. Array.prototype.slice.call(res)    

    2024年02月11日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包