Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.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 删除具有未定义值的对象数组的JSON键_Javascript_Json - Fatal编程技术网

Javascript 删除具有未定义值的对象数组的JSON键

Javascript 删除具有未定义值的对象数组的JSON键,javascript,json,Javascript,Json,我有一个类似这样的JSON,我想删除所有具有未定义值的对象数组的键 { '2020-07-27': [{ name: "Study", time: "11:30 - 12:30", week: "monday" }], '2020-08-01': [{ name: "undefined", time: "undefined", wee

我有一个类似这样的JSON,我想删除所有具有未定义值的对象数组的键

{
  '2020-07-27': [{ 
    name: "Study",
    time: "11:30 - 12:30",
    week: "monday"
  }],
  '2020-08-01': [{ 
    name: "undefined",
    time: "undefined",
    week: "undefined"
  }],
  '2020-08-03': [{ 
    name: "Study",
    time: "11:30 - 12:30",
    week: "monday"
  }],
  '2020-08-07': [{ 
    name: "undefined",
    time: "undefined",
    week: "undefined"
  }],
}
这就是我想做的

{
  '2020-07-27': [{ 
    name: "Study",
    time: "11:30 - 12:30",
    week: "monday"
  }],
  '2020-08-03': [{ 
    name: "Study",
    time: "11:30 - 12:30",
    week: "monday"
  }]
}

您可以尝试以下步骤:

  • 使用
    Object.entries()
    将对象转换为键值对列表(在本例中是一个对象的日期和数组)
  • 迭代该键值对数组,过滤并忽略数组中包含不需要的对象的键值对
  • 使用
    Object.fromEntries()
    将键值对转换回Object
const x={
"2020-07-27": [
{
名称:“研究”,
时间:“11:30-12:30”,
周:“星期一”,
},
],
"2020-08-01": [
{
名称:“未定义”,
时间:“未定义”,
周:“未定义”,
},
],
"2020-08-03": [
{
名称:“研究”,
时间:“11:30-12:30”,
周:“星期一”,
},
],
"2020-08-07": [
{
名称:“未定义”,
时间:“未定义”,
周:“未定义”,
},
],
}
const res=Object.entries(x.filter)(
([日期,数组])=>
!Object.values(数组[0]).every((值)=>value==“未定义”)
)

console.log(Object.fromEntries(res))
您可以尝试以下步骤:

  • 使用
    Object.entries()
    将对象转换为键值对列表(在本例中是一个对象的日期和数组)
  • 迭代该键值对数组,过滤并忽略数组中包含不需要的对象的键值对
  • 使用
    Object.fromEntries()
    将键值对转换回Object
const x={
"2020-07-27": [
{
名称:“研究”,
时间:“11:30-12:30”,
周:“星期一”,
},
],
"2020-08-01": [
{
名称:“未定义”,
时间:“未定义”,
周:“未定义”,
},
],
"2020-08-03": [
{
名称:“研究”,
时间:“11:30-12:30”,
周:“星期一”,
},
],
"2020-08-07": [
{
名称:“未定义”,
时间:“未定义”,
周:“未定义”,
},
],
}
const res=Object.entries(x.filter)(
([日期,数组])=>
!Object.values(数组[0]).every((值)=>value==“未定义”)
)

console.log(Object.fromEntries(res))
您可以在json中循环,检查每个键值对,如果值未定义,则删除

{
  '2020-07-27': [{ 
    name: "Study",
    time: "11:30 - 12:30",
    week: "monday"
  }],
  '2020-08-01': [{ 
    name: "undefined",
    time: "undefined",
    week: "undefined"
  }],
  '2020-08-03': [{ 
    name: "Study",
    time: "11:30 - 12:30",
    week: "monday"
  }],
  '2020-08-07': [{ 
    name: "undefined",
    time: "undefined",
    week: "undefined"
  }],
}
var json={
'2020-07-27': [{ 
名称:“研究”,
时间:“11:30-12:30”,
星期:“星期一”
}],
'2020-08-01': [{ 
名称:“未定义”,
时间:“未定义”,
周:“未定义”
}],
'2020-08-03': [{ 
名称:“研究”,
时间:“11:30-12:30”,
星期:“星期一”
}],
'2020-08-07': [{ 
名称:“未定义”,
时间:“未定义”,
周:“未定义”
}],
}
for(json中的var i){
obj=json[i][0]
Object.keys(obj.forEach)(key=>obj[key]==“未定义”?删除json[i]:{});
}

log(json)
您可以循环使用json并检查每个键值对,如果值未定义,则删除

{
  '2020-07-27': [{ 
    name: "Study",
    time: "11:30 - 12:30",
    week: "monday"
  }],
  '2020-08-01': [{ 
    name: "undefined",
    time: "undefined",
    week: "undefined"
  }],
  '2020-08-03': [{ 
    name: "Study",
    time: "11:30 - 12:30",
    week: "monday"
  }],
  '2020-08-07': [{ 
    name: "undefined",
    time: "undefined",
    week: "undefined"
  }],
}
var json={
'2020-07-27': [{ 
名称:“研究”,
时间:“11:30-12:30”,
星期:“星期一”
}],
'2020-08-01': [{ 
名称:“未定义”,
时间:“未定义”,
周:“未定义”
}],
'2020-08-03': [{ 
名称:“研究”,
时间:“11:30-12:30”,
星期:“星期一”
}],
'2020-08-07': [{ 
名称:“未定义”,
时间:“未定义”,
周:“未定义”
}],
}
for(json中的var i){
obj=json[i][0]
Object.keys(obj.forEach)(key=>obj[key]==“未定义”?删除json[i]:{});
}
console.log(json)