Restructuring and downsizing are the best friends here.
To select several properties of an object and create a new object with this subset, you can simply do:
let {a, b} = beforeTest;
let afterTest = {a, b};
, /:
let {a1, b1} = beforeTest;
let {a2, b2} = midTest;
let aN = {a1, a2}, bN = {b1, b2};
, (.. 1 2 a), (pluck) :
let beforeTest = {a: 1, b: 2, c: 3};
let midTest = {d: 4, e: 5, f: 6};
let fields = ['a', 'c', 'd'];
let afterTest = Object.assign.apply({}, [beforeTest, midTest].map(obj => {
return Object.keys(obj).filter(key => fields.includes(key)).reduce((p, key) => (p[key] = obj[key], p), {});
}));
console.log(afterTest);
, , , .