【发布时间】:2018-04-30 20:32:43
【问题描述】:
我想将属性从objA 转移到objB,同时更改它们的名称 并仅在它们真实 时覆盖。使用 lodash 但 ES6 解决方案会更好。
这是我目前所拥有的:
// My initial objects
const objA = {a: 1, b: '', c: null};
const objB = {x: 7, y: 8, z: 9};
// Extracting and renaming
let {x: a, y: b, z: c} = obj1;
// Sanitizing
const temp = _.pickBy({x, y, z}, _.identity);
// Merging A and B
return {...objB, ...objA}; // {x: 1, y: 8, z: 9}
有没有更不做作的方法?
【问题讨论】:
-
似乎使用地图会更明智。
-
FWIW,
{...objB, ...objA}不是有效的 ES6。对象传播是一个提议。如果您愿意接受使用实验性功能的答案,您应该使用ecmascript-next 标记您的问题。 -
有
objB总是键{x, y, z}?
标签: javascript object ecmascript-6 lodash