Javascript 将所有值传播到对象中

Hun*_*gnn 3 javascript arrays

我有一个对象包含值是数组,例如:

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'
        }
    ]
};
Run Code Online (Sandbox Code Playgroud)

我想从这个数组中的键获取所有值。所以,我期望数组作为输出,如下所示:

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'
        }
]
Run Code Online (Sandbox Code Playgroud)

谢谢

0st*_*ne0 6

首先获取对象的值Object.values()

然后使用flat()将其展平为单个数组

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)
Run Code Online (Sandbox Code Playgroud)