我有这样的数据,
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 ]但我想忽略最后一个键号。
发布于 2018-06-19 19:30:32
您可以使用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);
发布于 2018-06-19 19:31:45
或者,您可以简单地排除名为number的键
const data = {
pizza: ['Pizza Margherita', 'peppy paneer'],
sandwich: [],
burger: ['Veg Maharaja'],
number: [0,2]
};
const food = [];
for(key in data) {
if (data.hasOwnProperty(key) && key!='number') {
const element = data[key];
element.forEach(el => {
food.push(el)
});
}
}
console.log(food)
发布于 2018-06-19 19:31:19
您需要设置一个条件,以避免迭代遍历number键值。
const data = {
pizza: ['Pizza Margherita', 'peppy paneer'],
sandwich: [],
burger: ['Veg Maharaja'],
number: [0,2]
};
const food = [];
for(key in data) {
if (data.hasOwnProperty(key)) {
const element = data[key];
if(key !== 'number'){
element.forEach(el => {
food.push(el)
});
}
}
}
console.log(food)
https://stackoverflow.com/questions/50927293
复制相似问题