Home > other >  JS - Combine Multiple Values in Object Into New Key in Same object
JS - Combine Multiple Values in Object Into New Key in Same object

Time:06-08

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);

  • Related