Home > Back-end >  Transform an tab of key values into an array of key values
Transform an tab of key values into an array of key values

Time:05-03

I would like to transform an tab array of key values into an array of key values

     rates.map(rate => {
       return {
         [rate]: account.vent.filter(v => v.rate === rate)[0]
           ?.vat,
       }
     })


(5) [{…}, {…}, {…}, {…}, {…}]
0: {10: 500}
1: {20: 630}
2: {5: undefined}
3: {19.6: undefined}
4: {1: undefined}

I have this in my console I would like something more like:

{
  10: 500
  20: 630
  5: undefined
  19.6: undefined
  1: undefined
}

CodePudding user response:

It looks like reduce is a more appropriate method to use for your case, since you want to create an object out of an array.

something like

 rates.reduce((ratesObj, rate) => {
   ratesObj[rate] = account.vent.find(v => v.rate === rate)?.vat;
   return ratesObj;
 }, {})

CodePudding user response:

Add this and your problems will be solved

.reduce(function(p,c){
    return {...p,...c};
},{})

Your code will look like this after adding the above code

rates.map(rate => {
       return {
         [rate]: account.vent.filter(v => v.rate === rate)[0]
           ?.vat,
       }
     })
.reduce(function(p,c){
    return {...p,...c};
},{})

CodePudding user response:

Try this

array.reduce((acc, item)=>{
    return {...acc, ...item}
},{})

Reduce Method:- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce

A good video on reduce method:- https://www.youtube.com/watch?v=IfieE2G3bfg

  • Related