我有类似的数据

const data = {
    pizza: ['Pizza Margherita', 'peppy paneer'],
    sandwich: [],
    burger: ['Veg Maharaja'],
    number: [0,2]
};


我想以数组形式存储数据,

[ 'Pizza Margherita', 'peppy paneer','Veg Maharaja' ]


这就是我尝试过的

const food = [];
for(key in data) {
    if (data.hasOwnProperty(key)) {
        const element = data[key];
        element.forEach(el => {
            food.push(el)
        });
    }
}
//It Gives output like [ 'Pizza Margherita', 'peppy paneer', 'Veg Maharaja', 0, 2 ]


但我想忽略最后一个键号。

最佳答案

您可以使用Object.values将对象转换为数组。可以使用concat和传播语法来展平该数组。使用filter仅获取字符串。



const data = {
  pizza: ['Pizza Margherita', 'peppy paneer'],
  sandwich: [],
  burger: ['Veg Maharaja'],
  number: [0, 2]
};

const result = [].concat(...Object.values(data)).filter(isNaN);
console.log(result);

10-07 18:48