当前位置: 首页 > news >正文

js数组深拷贝汇总

1.for 循环实现数组的深拷贝

通过对数组的for循环,即可实现对数组的深拷贝了。

var arr = [1,2,3,4,5]
var arr2 = copyArr(arr)
function copyArr(arr) {let res = []for (let i = 0; i < arr.length; i++) {res.push(arr[i])}return res
}

2.slice 方法实现数组的深拷贝

将原数组中抽离部分出来形成一个新数组。我们只要设置为抽离全部,即可完成数组的深拷贝。

var arr = [1,2,3,4,5]
var arr2 = arr.slice(0)
arr[2] = 5
console.log(arr)
console.log(arr2)
// 输出arr为  [1, 2, 5, 4, 5]
// 输出arr2为 [1, 2, 3, 4, 5]

3.concat 方法实现数组的深拷贝

用于连接多个数组组成一个新的数组的方法。那么,我们只要连接它自己,即可完成数组的深拷贝。

var arr = [1,2,3,4,5]
var arr2 = arr.concat()
arr[2] = 5
console.log(arr)
console.log(arr2)
// 输出arr为  [1, 2, 5, 4, 5]
// 输出arr2为 [1, 2, 5, 4, 5]

4.使用JSON.parse()和JSON.stringify()

const arr1 = [1, 2, 3, 4];
const arr2 = JSON.parse(JSON.stringify(arr1));

5. 使用Array.from()

const arr1 = [1, 2, 3, 4];
const arr2 = Array.from(arr1);

6.使用Array.map()

const arr1 = [1, 2, 3, 4];
const arr2 = arr1.map(item => item);

7.ES6扩展运算符实现数组的深拷贝

var arr = [1,2,3,4,5]
var [ ...arr2 ] = arr
arr[2] = 5
console.log(arr)
console.log(arr2)
// 输出arr为  [1, 2, 5, 4, 5]
// 输出arr2为 [1, 2, 5, 4, 5]
http://www.lryc.cn/news/212003.html

相关文章:

  • 错误 LNK1112 模块计算机类型“x64”与目标计算机类型“X86”冲突
  • java八股文(基础篇)
  • window系统修改rabbitmq 默认端口
  • 七人拼团模式:颠覆你的购物观念,499元产品让你赚翻天!
  • 【机器学习合集】模型设计之卷积核设计 ->(个人学习记录笔记)
  • JS实现用户二次确认后再提交表单
  • 1992-2021年全国各省经过矫正的夜间灯光数据(GNLD、VIIRS)
  • JMeter的使用——傻瓜式学习【中】
  • MyBaties存储和查询json格式的数据(实体存储查询版本)
  • 动态规划14:一和零
  • C#WPF嵌入字体实例
  • Linux——Linux权限
  • android中gradle的kotlin编译配置选项
  • 【知识串联】概率论中的值和量(随机变量/数字特征/参数估计)【考研向】【按概率论学习章节总结】(最大似然估计量和最大似然估计值的区别)
  • NOIP2023模拟6联测27 点餐
  • AMEYA360:类比半导体重磅发布车规级智能高边驱动HD7xxxQ系列
  • 【HarmonyOS】鸿蒙操作系统架构
  • JSON数据
  • 金融领域:怎么保持电力系统连续供应?
  • 批量重命名文件夹:用数字随机重命名法管理您的文件夹
  • RPC与HTTP的关系
  • OpenCV #以图搜图:感知哈希算法(Perceptual hash algorithm)的原理与实验
  • Android多张图片rotation旋转角度叠加/重叠堆放
  • HBuilderX 自定义语法提示
  • Leetcode—2562.找出数组的串联值【简单】
  • T0外部计数输入
  • 分治法求解棋盘覆盖问题
  • 爱写bug的小邓程序员个人博客
  • selenium判断元素可点击、可见、可选
  • 计算机网络重点概念整理-第六章 应用层【期末复习|考研复习】