如何获取对象A独有的属性?Lodash是否有对应方法?
使用Lodash提取仅存在于objA的属性
要实现从objA中获取仅它有、objB没有的属性,Lodash有几种简洁的实现方式:
方法一:直接筛选属性
利用_.pickBy遍历objA的属性,配合_.has判断属性是否不存在于objB中:
const objA = { name: 'Tom', age: '20', location: 'London' }; const objB = { name: 'Jimmy', age: '35', occupation: 'Welder', hobbies: ['Football'] }; const result = _.pickBy(objA, (_, key) => !_.has(objB, key)); console.log(result); // { location: 'London' }
方法二:先取键的差集再提取属性
先通过_.difference获取objA独有的键数组,再用_.pick提取对应属性:
const objA = { name: 'Tom', age: '20', location: 'London' }; const objB = { name: 'Jimmy', age: '35', occupation: 'Welder', hobbies: ['Football'] }; const uniqueKeys = _.difference(_.keys(objA), _.keys(objB)); const result = _.pick(objA, uniqueKeys); console.log(result); // { location: 'London' }
两种方法都能精准得到你要的结果,第一种步骤更紧凑,第二种逻辑拆分清晰,按需选择即可。
内容的提问来源于stack exchange,提问作者Keselme
相关产品推荐
相关产品推荐

