Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 来自对象的数组中的特定数据_Javascript_Arrays_Object - Fatal编程技术网

Javascript 来自对象的数组中的特定数据

Javascript 来自对象的数组中的特定数据,javascript,arrays,object,Javascript,Arrays,Object,我有这样的数据 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

我有这样的数据

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 ]

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

您可以使用
对象将对象转换为数组。值
您可以使用
concat
和spread语法展平数组。使用
filter
仅获取字符串

const数据={
披萨:[“玛格丽塔披萨”、“活力派披萨”],
三明治:[],
汉堡:['vegmaharaja'],
编号:[0,2]
};
const result=[].concat(…Object.values(data)).filter(isNaN);

控制台日志(结果)
您可以使用
object将对象转换为数组。value
您可以使用
concat
和spread语法展平数组。使用
filter
仅获取字符串

const数据={
披萨:[“玛格丽塔披萨”、“活力派披萨”],
三明治:[],
汉堡:['vegmaharaja'],
编号:[0,2]
};
const result=[].concat(…Object.values(data)).filter(isNaN);

控制台日志(结果)
您需要设置一个条件,以避免对
数字
键值进行迭代。
const数据={
披萨:[“玛格丽塔披萨”、“活力派披萨”],
三明治:[],
汉堡:['vegmaharaja'],
编号:[0,2]
};
常量食物=[];
用于(输入数据){
if(data.hasOwnProperty(key)){
常量元素=数据[键];
如果(键!=='number'){
元素。forEach(el=>{
食物。推(el)
});
}
}
}

console.log(food)
您需要设置一个条件,以避免对
数字
键值进行迭代。
const数据={
披萨:[“玛格丽塔披萨”、“活力派披萨”],
三明治:[],
汉堡:['vegmaharaja'],
编号:[0,2]
};
常量食物=[];
用于(输入数据){
if(data.hasOwnProperty(key)){
常量元素=数据[键];
如果(键!=='number'){
元素。forEach(el=>{
食物。推(el)
});
}
}
}

console.log(food)
或者您可以简单地排除名为
number

const数据={
披萨:[“玛格丽塔披萨”、“活力派披萨”],
三明治:[],
汉堡:['vegmaharaja'],
编号:[0,2]
};
常量食物=[];
用于(输入数据){
if(data.hasOwnProperty(key)&&key!=“number”){
常量元素=数据[键];
元素。forEach(el=>{
食物。推(el)
});
}
}

console.log(food)
或者您可以简单地排除名为
number

const数据={
披萨:[“玛格丽塔披萨”、“活力派披萨”],
三明治:[],
汉堡:['vegmaharaja'],
编号:[0,2]
};
常量食物=[];
用于(输入数据){
if(data.hasOwnProperty(key)&&key!=“number”){
常量元素=数据[键];
元素。forEach(el=>{
食物。推(el)
});
}
}

console.log(food)
这是一种老式的方法,但结果是您所期望的

var数据={
披萨:[“玛格丽塔披萨”、“活力派披萨”],
三明治:[],
汉堡:['vegmaharaja'],
编号:[0,2]
};
var食品=[];
用于(输入数据){
if(data.hasOwnProperty(key)){
常量元素=数据[键];
元素。forEach(el=>{
如果(el的类型=='string')食物推送(el)
});
}
}

console.log(food)
这是一种老式的方法,但结果是您所期望的

var数据={
披萨:[“玛格丽塔披萨”、“活力派披萨”],
三明治:[],
汉堡:['vegmaharaja'],
编号:[0,2]
};
var食品=[];
用于(输入数据){
if(data.hasOwnProperty(key)){
常量元素=数据[键];
元素。forEach(el=>{
如果(el的类型=='string')食物推送(el)
});
}
}

console.log(food)
您如何知道它是否是要保留的变量数组?
但我想忽略最后一个键号
,所以对象的结构不确定?还是只想添加字符串?@CertainPerformance strings only如何知道它是否是要保留的变量数组?
但我想忽略最后一个键号
,因此对象的结构不确定?还是只想添加字符串?@CertainPerformance strings only请解释代码是如何解决问题的。请解释代码是如何解决问题的。