有没有办法用lodash复制对象,但不是所有属性。 我知道的唯一方法是通过属性手动复制它的属性
想要例如:
var obj = {
a: 'name',
b: [1,2,3],
c: {
z: 'surname',
x: []
},
d: {
y: 'surname2',
w: []
}
};
,结果如
var copy_obj = {
b: [1,2,3],
c: {
z: 'surname',
x: []
}
};
编辑: 我终于选择了:
var blacklist = ['a','d'];
_.cloneDeep(_.omit(obj, blacklist));
答案 0 :(得分:15)
答案 1 :(得分:4)
您可以使用pick功能:
_.pick(obj, 'b', 'c')
答案 2 :(得分:2)
您可以使用JSON.stringify
的第二个参数来执行此操作。
JSON.parse(JSON.stringify(obj, ['b', 'c']))
答案 3 :(得分:0)
您可以结合使用分配和选择
Object.assign(copy_obj, _.pick(obj, ['b', 'c']));
这样,如果 copy_obj 有其他属性,则不要覆盖它们。
答案 4 :(得分:-1)
var blacklist = ['a','d'];
_.cloneDeep(_.omit(obj, blacklist));