1

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
 }

2 Answers 2

4

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)

Sign up to request clarification or add additional context in comments.

Comments

0

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.