技术文章 > Web开发 >  JavaScript > 正文

js深拷贝函数

宋宋大人

在JavaScript操作中,如果我们想要修改数组或者对象的值,会先将数组或对象的值进行备份,保留原来数组或对象的值不被修改,这个过程就可以使用JavaScript中的深拷贝实现。JavaScript中有深拷贝函数:concat函数和slice函数,本文将向大家介绍。

第一种:JavaScript的concat函数

concat(arr1, arr2,....)

返回一个新的数组。该数组是通过把所有 arrayX 参数添加到 arrayObject 中生成的。如果要进行 concat() 操作的参数是数组,那么添加的是数组中的元素,而不是数组。

使用实例

var arr1 = ["1","2","3"];
var arr2 = arr1.concat();
arr2[1] = "9";
console.log("数组的原始值:" + arr1 );
console.log("数组的新值:" + arr2 );

第二种:JavaScript的slice函数

 slice(index1, index2)

没有参数是拷贝数组

只有一个参数是从该位置起到结束拷贝数组元素

两个参数,拷贝从起始位置到结束位置的元素(不包含结束位置的元素:含头不含尾)

使用实例

var a = [1, 2, 3]
    b = a.slice(0)
console.log("a: ",a)
console.log("b: ",b)

b[0] = 99;
console.log("---- after changed deepClone array b ----- ")
console.log("a: ",a)
console.log("b: ",b)

concat函数和slice函数在修改数组时,不会修改原来的数组,而是返回一个新的数组。并且他们只能对JavaScript数组中简单的数据类型进行深拷贝,要注意哦~更多js学习:js教程

免费视频教程
本文原创发布python学习网,转载请注明出处,感谢您的尊重!
相关文章
 python中glob库是什么?
 如何使用Python爬取BOSS职位薪酬?
 python如何将九九乘法表写入到Excel?
 python中ruamel.yaml模块是什么?
相关视频章节
 Python蟒蛇绘制代码分析
 python注释
 python命名规范
 Python语言简介
作者信息
视频教程分类