JS数组和对象的深拷贝
来源:互联网 发布:淘宝哪家韩妆店最优惠 编辑:程序博客网 时间:2024/05/17 23:10
数组的浅拷贝:
var arr = [1,2,3];
var newArr = arr;
newArr[0] = 4;
console.log(arr + ‘##’ + newArr); //输出[4,2,3]和[4,2,3]
解释:这种方式实际上只是新数组对原数组的一个引用,更改数组元素会对原数组产生影响,称为浅拷贝
数组的深拷贝:
方法一:使用slice
var arr = [1,2,3];
var newArr = arr.slice(0);
方法二:使用concat
var arr = [1,2,3];
var newArr = arr.concat();
对象的深拷贝:
使用for in循环和递归函数
var deep = function(obj){
var result = {};
for(var key in obj){
result[key] = typeof obj[key] === ‘object’ ? deep(obj[key]) : obj[key];
}
return result;
}
0 0
- JS数组和对象的深拷贝
- js 对象和数组的深拷贝
- js 数组和对象的深度拷贝
- js数组及对象的深拷贝
- js数组、对象深拷贝
- js对象的浅拷贝和深拷贝
- js对象的深拷贝和浅拷贝
- js对象的深拷贝和浅拷贝
- js 对象浅拷贝和深拷贝
- js对象深拷贝和淺拷贝
- 一行代码完成js对象数组的深拷贝
- js 数组对象的深浅拷贝
- js 数组的深拷贝和浅拷贝三种实现深拷贝的方法
- JS中深拷贝数组、对象、对象数组方法
- JS中深拷贝数组、对象、对象数组方法
- JS中深拷贝数组、对象、对象数组方法
- JS对象的深拷贝
- js 对象的深拷贝
- 利用Mac创建一个 IPv6 WIFI 热点
- Android-设置PullToRefresh下拉刷新样式
- 【论文笔记】Deep Structured Output Learning for Unconstrained Text Recognition
- 基于DDD的.NET开发框架 - ABP分层设计
- MAC 下 mysql
- JS数组和对象的深拷贝
- 删除所有pyc文件
- C++第四次上机实验
- c#中垃圾回收机制
- 面试必备 - 经典冒泡排序Java
- 关于自定义对话框加入自定义ListView和getView多次加载导致EditText获取文本的问题
- 文章标题
- 11.进程间通信---网络通信(基于socket的一对一通信模型)
- 基于DDD的.NET开发框架 - ABP模块设计