Live2D

vue 深拷贝对象

复制数组而不指向同一个对象(深拷贝)

const _ = require('lodash');

let one_brand = [
    {name: 'A', count: 1, value: Infinity},
    {name: 'B', count: 2},
]

// 深拷贝
// 方法一
let two_brand = one_brand.map(o => Object.assign({}, o));
// 方法二
let two_brand = one_brand.map(o => ({...o}));
// 方法三(推荐)
let two_brand = _.cloneDeep(one_brand);

 

//该方法仅限于可被JSON.stringify解析的对象。

let newarr = JSON.parse(JSON.stringify(arr));

 

复制数组,数组为另一个对象,但数组内的元素仍然指向同个对象

方法一:

let newarr = arr.slice(0);

方法二:

let newarr = {...arr};

 

复制且指向同一个对象(浅拷贝)

let newarr = arr;

posted @ 2021-06-08 10:02  kikiy-  阅读(1173)  评论(0编辑  收藏  举报