Is there any way how to pick property from object into new object under different key?
E.g.:
// pseudo
let a = {prop1: 'a', prop2: 'b', prop3: 'c'}
_.pickAs(a, {prop1: 'first', prop3: 'second'}
// {first: 'a', second: 'c'}
You can use Array.reduce()
with Object.entries()
to create a pickAs()
method:
const a = {prop1: 'a', prop2: 'b', prop3: 'c'}
const pickAs = (obj, props) =>
Object.entries(obj)
.reduce((r, [k, v]) => {
if(k in props) r[props[k]] = v;
return r;
}, {});
const result = pickAs(a, {prop1: 'first', prop3: 'second'});
console.log(result) // {first: 'a', second: 'c'}