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

  • Post author:
  • Post category:其他




一、数组深拷贝的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);



版权声明:本文为qq_45144083原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。