JavaScript--如何拷贝一个json对象:浅复制和深复制
2017-05-11 15:26
471 查看
最近笔试面试这个问题貌似被问挺多的,所以就来写写加深下印象
但这样不能拷贝函数,并且会丢失原型链。或者
暴力解法
浅复制
let a = { x: 10, y: [20, 5]} let b = JSON.parse(JSON.stringify(a))
但这样不能拷贝函数,并且会丢失原型链。或者
var obj = { a:1, arr: [2,3] }; var obj = Copy(obj); function Copy(src) { var new = {}; for (var prop in src) { if (src.hasOwnProperty(prop)) { new[prop] = src[prop]; } } return new; }
深复制
递归:function deepCopy(p, c) { var c = c || {}; for (var i in p) { if (typeof p[i] === 'object') { c[i] = (p[i].constructor === Array) ? [] : {}; deepCopy(p[i], c[i]); } else { c[i] = p[i]; } } return c; }
相关文章推荐
- JavaScript如何复制一个对象或数组,而不是引用一个对象或数组。
- 如何深度复制一个javascript对象
- JavaScript中如何判断一个对象是不是数组
- C++ STL 如何安全的将一个含有指针变量的类对象放在容器中? 避免浅拷贝问题
- javascript中如何声明一个正则表达式对象
- javascript中如何判断一个新创建对象是无属性的空对象?
- JavaScript对象复制拷贝
- Javascript面试题:如何给一个Javascript的对象属性赋值?如何取得属性值?
- js如何检测一个属性是否在json对象里
- 2.python里如何拷贝一个对象
- js中如何复制一个对象,如何获取所有属性和属性对应的值
- javascript 数组和对象的浅复制和深度复制 assign/slice/concat/JSON.parse(JSON.stringify())
- 如何将一个url 地址 转化成json格式的对象
- javascript中字符串格式json如何转化成json对象
- Javascript 面向对象编程(二):如何生成一个对象
- JavaScript深度克隆(深度拷贝)一个对象
- javascript 数组以及对象的深拷贝(复制数组或复制对象)的方法
- 如何将一个java对象(包括java对象数组、集合)转换成一个json字符串
- 如何把一个表单form变成Json对象
- JavaScript 如何判断一个对象{}是否为空对象