This should be simple, but I am stumbling on it.
What I have:
{
notSet: 2,
set: 9,
blanks: 4,
other: 8
}
Into:
{
newKey: 6, (combine notSet and blanks remove them)
set: 9,
other: 8
}
CodePudding user response:
you can do this
const obj = {
notSet: 2,
set: 9,
blanks: 4,
other: 8
}
const transform = ({notSet, blanks, ...rest}) => ({
...rest,
newKey: notSet blanks
})
const newObject = transform(obj)
console.log(newObject)
CodePudding user response:
With delete keyword and a few checks it is possible. You would want to delete your extra keys.
I used the ??
(nullish coalescing operator) because some keys might not exist, and safer to use a 0
value, otherwise you might get NaN
(if you try to add null/undefined
with a number
):
const obj1 = {
notSet: 2,
set: 9,
blanks: 4,
other: 8
};
const transformObj = (obj1) => {
obj1.newKey = (obj1.notSet ?? 0) (obj1.blanks ?? 0);
delete obj1.notSet;
delete obj1.blanks;
};
transformObj(obj1);
console.log(obj1);