Javascript 删除具有未定义值的对象数组的JSON键
我有一个类似这样的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
{
'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()
- 迭代该键值对数组,过滤并忽略数组中包含不需要的对象的键值对
- 使用
将键值对转换回ObjectObject.fromEntries()
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()
- 迭代该键值对数组,过滤并忽略数组中包含不需要的对象的键值对
- 使用
将键值对转换回ObjectObject.fromEntries()
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)