2016-12-28 38 views
0

我想用新的更新我的对象(但只有自己的属性)使用lodash。我正在阅读文档,但找不到太多(或者只是我不明白)。有任何想法吗?如何仅使用自己的属性更新对象?

let x = { name: 'John', last: 'Doe' }; 
let y = { age: 23 }; 
let z = { last: 'Smith', age: 25 }; 

_.something(x, y); // should be { name: 'John', last: 'Doe' }; 
_.something(x, z); // should be { name: 'John', last: 'Smith' }; 

回答

0

使用_.keys()获取源对象的按键阵列,并且从第二对象使用数组_.pick()性能。 _.assign()如果你不想改变原来的东西,那么将该物件的拾取属性或新物件{}

let x = { name: 'John', last: 'Doe' }; 
 
let y = { age: 23 }; 
 
let z = { last: 'Smith', age: 25 }; 
 

 
console.log(_.assign({}, x, _.pick(y, _.keys(x)))); 
 
console.log(_.assign({}, x, _.pick(z, _.keys(x))));
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.3/lodash.min.js"></script>

+0

太谢谢你了! – Nika