JS 数组的浅复制与深复制

简介: JS 数组的浅复制与深复制

数组的深复制与浅复制

首先先了解一下深复制和浅复制的官方概念。


深复制:

是将指向内容复制到给当前对象新分配的缓冲区中的一种复制方式,相对于浅复制。


浅复制:

浅复制是指当对象的字段值被复制时,字段引用的对象不会被复制。


相信在座的各位看完官方概念都没有几个看懂的,接下来我将展示我所理解的深复制与浅复制。

深复制 - 复制数组中的元素内容(数据)
浅复制 -  复制数组的内存地址

接下来用数组的复制来进行解析深复制与浅复制的区别,示例代码如下:

var arr1 = [1,2,3,4,5]
//浅复制
var arr2 = arr1;
arr2[2] = 6;
console.log(arr2,arr1)
/*
输出结果为:[ 1, 2, 6, 4, 5 ] [ 1, 2, 6, 4, 5 ],因为是浅复制,arr2
和arr1的数据内容指向相同的地址,所以arr2的内容改变,arr1的数据内容也随之改变。
*/
// 深复制
var arr3 = [];
for (var i=0;i<arr1.length;i++){
    arr3[i] = arr1[i];
}
console.log(arr3);//[ 1, 2, 3, 4, 5 ]
arr3[2] = 6;//改变arr3中位置为3的数据
console.log(arr3,arr1);//打印arr3和arr1
/*
输出结果为:[ 1, 2, 6, 4, 5 ] [ 1, 2, 3, 4, 5 ]。因为是深复制,所以arr3
只是复制了arr1的数据内容,所以arr3的数据内容改变,arr1的数据内容不随之改变。
*/


目录
相关文章
|
1月前
|
自然语言处理 前端开发 JavaScript
🛠️ JavaScript数组操作指南:20个精通必备技巧🚀
本文详细介绍了 JavaScript 中的 20 个高效数组操作技巧,涵盖了从基本的添加、移除元素,到数组转换和去重等高级操作。强调了不可变性的重要性,提供了清晰的代码示例,帮助开发者编写更整洁和高效的代码。无论是新手还是经验丰富的开发者,这些技巧都将显著提升您的编码能力,使您在项目中更具竞争力。
24 2
|
1月前
|
JavaScript 前端开发 测试技术
JS都有哪些操作数组的方法
JS都有哪些操作数组的方法
20 3
|
1月前
|
JavaScript
js删除数组中已知下标的元素
js删除数组中已知下标的元素
35 4
|
1月前
|
缓存 JavaScript 前端开发
JavaScript中数组、对象等循环遍历的常用方法介绍(二)
JavaScript中数组、对象等循环遍历的常用方法介绍(二)
31 1
|
1月前
|
JavaScript 前端开发 Java
【javaScript数组,函数】的基础知识点
【javaScript数组,函数】的基础知识点
23 5
|
1月前
|
JavaScript 前端开发 索引
探索JavaScript数组:基础
探索JavaScript数组:基础
17 3
|
1月前
|
JavaScript 前端开发 索引
JS 删除数组元素( 5种方法 )
JS 删除数组元素( 5种方法 )
37 1
|
1月前
|
JavaScript 前端开发
如何在JS中声明一个数组
如何在JS中声明一个数组
18 0
|
1月前
|
存储 JavaScript 前端开发
JavaScript Array(数组) 对象
JavaScript Array(数组) 对象
27 3
|
1月前
|
JavaScript 前端开发 API
JS中数组的方法flat()怎么用
JS中数组的方法flat()怎么用
13 0