Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Javascript spread all value in object

I have an object contains value is array, like:

const CHANNELS = {
    FACEBOOK: [{
            value: 'face1',
            label: 'Facebook Account'
        },{
            value: 'face1',
            label: 'Facebook Group'
        },
    ],
    LINKEDIN: [{
            value: '',
            label: 'All'
        }, {
            value: 'english',
            label: 'English'
        }, {
            value: 'korean',
            label: 'Korean'
        }
    ],
    YOUTUBE: [{
            value: 'youtube1',
            label: 'Youtube channel'
        }, {
            value: 'youtube2',
            label: 'Youtube'
        }
    ]
};

I want to get all value from key in this array. So, my expect array as output like:

const array = [{
            value: 'face1',
            label: 'Facebook Account'
        }, {
            value: 'face1',
            label: 'Facebook Group'
        }, {
            value: '',
            label: 'All'
        }, {
            value: 'english',
            label: 'English'
        }, {
            value: 'korean',
            label: 'Korean'
        }, {
            value: 'youtube1',
            label: 'Youtube channel'
        }, {
            value: 'youtube2',
            label: 'Youtube'
        }
]

Thanks

like image 875
Luke Avatar asked Apr 18 '26 14:04

Luke


2 Answers

First get the value of the objects with Object.values()

Then use flat() to flatten it into a single array

const CHANNELS = {
    FACEBOOK: [{value: 'face1', label: 'Facebook Account'},{value: 'face1', label: 'Facebook Group'}, ],
    LINKEDIN: [{value: '', label: 'All'}, {value: 'english', label: 'English'}, {value: 'korean', label: 'Korean'} ],
    YOUTUBE: [{value: 'youtube1', label: 'Youtube channel'}, {value: 'youtube2', label: 'Youtube'} ]
};

const res = Object.values(CHANNELS).flat();
console.log(res)
like image 72
0stone0 Avatar answered Apr 21 '26 05:04

0stone0


Try this :

let arr = [];

for (const key in CHANNELS) {
  for (const iterator of CHANNELS[key]) {
    arr.push(iterator);
  }
}

console.log(arr);
like image 30
Ali Avatar answered Apr 21 '26 04:04

Ali