巧用JSON.parse与JSON.stringify实现深复制与删除对象属性

  1. 实现深度克隆

Array的克隆,对比[].concat方法

let aa = [
    {
        name: 'zgatry'
    }
    1,
    2,
    3
];
let bb = [].concat(aa);
let cc = JSON.parse(JSON.stringify(aa));
aa[0].name = 'test';
console.log(bb, cc);
  1. 删除对象的某个属性

对比delete,网上看到有人说delete方法性能比较差, 还没研究过。

//假设准备删除children字段

let obj  = {
    name: 'zgatry',
    age: 18,
    children: [1,2,3,4]
};
obj.children = undefined;
obj = JSON.parse(JSON.stringify(obj));
console.log(obj);
posted @ 2017-06-09 16:06  君寻不惑  阅读(545)  评论(0)    收藏  举报