Home > Net >  Get values from objects in array with rest parameter
Get values from objects in array with rest parameter

Time:10-30

let newValues = user.info.socialMedia ? [...user.info.socialMedia] : []

So here we get several objects into the array that have an id key, and instead of the objects themselves I want to have only the id strings in this array. How can I get this working? I am quite new to Javascript, so it would be nice to get some help here.

I tried a for of then a for in loop to get the ids out of there and push them to the array, tho this does not work for my case.

CodePudding user response:

instead of the objects themselves I want to have only the id strings

That sounds like a .map() operation, to project one array into another by applying a transformation to each object. Something like this:

let newValues = user.info.socialMedia ? user.info.socialMedia.map(s => s.id) : []

Or perhaps simpler:

let newValues = user.info.socialMedia?.map(s => s.id) ?? []

For example:

let user = {
  info: {
    socialMedia: [
      { id: 1, name: 'Ron' },
      { id: 2, name: 'Tammy' },
      { id: 3, name: 'Tammy 2' }
    ]
  }
};
let newValues = user.info.socialMedia?.map(s => s.id) ?? []
console.log(newValues);

  • Related