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