Below is the object I have
var data = {
sku: ['1', '2', '3', '4'],
color: [],
season: ['winter', 'summer'],
}
Below is the output I'm expecting
data = [
{ sku: '1', season: 'winter'},
{ sku: '2', season: 'summer'},
{ sku: '3'},
{ sku: '4'},
]
Below is the working script but not easy to read. Please suggest if you have any better suggestion.
var data = {
sku: ['1', '2', '3', '4'],
color: [],
season: ['winter', 'summer'],
}
var arr = Object.entries(data)
.filter(item => item[1] && item[1].length) // remove empty values
.sort((x, y) => y[1].length - x[1].length) // bring lengthy value to first
var final = arr[0][1].map((a, index) =>
arr.reduce((b, acc) => ({
...b,
...(acc[1][index] && { [acc[0]]: acc[1][index] }),
}), {})
);
console.log(final);