Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.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_Ecmascript 6 - Fatal编程技术网

Javascript 获取特定参数为空的数组中的第一项

Javascript 获取特定参数为空的数组中的第一项,javascript,arrays,ecmascript-6,Javascript,Arrays,Ecmascript 6,考虑到这个阵列: const body = [ {id: 1,courses: [{title:"course1.1", results:[]}, {title:"course1.2", results:[]}]}, {id: 2,courses: [{title:"course1.1", results:[]}, {title:"course1.2",results:[]}]}, ]; 我试图得到身体里第一个没有结果的东西 我试过这个: body.filter(session=

考虑到这个阵列:

const body = [
  {id: 1,courses: [{title:"course1.1", results:[]}, {title:"course1.2", results:[]}]},
  {id: 2,courses: [{title:"course1.1", results:[]}, {title:"course1.2",results:[]}]},   
];
我试图得到身体里第一个没有结果的东西

我试过这个:

body.filter(session=>session.courses.filter(course=>course.results.length)这应该可以做到:

const body=[{id:1,课程:[{title:“course1.1”,结果:[{title:“result1.1.1”},{title:“result1.1.2”},{title:“course1.2”,结果:[]},{id:2,课程:[{title:“course1.1”,结果:[]},{title:“course1.2”,结果:[]},{id:3,课程:[]};
console.log(body.reduce((r,c)=>(c.courses.length?r.push({id:c.id,courses:[…c.courses.filter({results}=>!results.length)]):true)和&r,[])
这应该可以做到:

const body=[{id:1,课程:[{title:“course1.1”,结果:[{title:“result1.1.1”},{title:“result1.1.2”},{title:“course1.2”,结果:[]},{id:2,课程:[{title:“course1.1”,结果:[]},{title:“course1.2”,结果:[]},{id:3,课程:[]};

console.log(body.reduce((r,c)=>(c.courses.length?r.push({id:c.id,courses:[…c.courses.filter({results}=>!results.length)])&&r,[])
您可以映射新对象,而无需修改原始数据

var数组=[{id:1,课程:[{title:“course1.1”,结果:[{title:“result1.1.1”},{title:“result1.1.2”},{title:“course1.2”,结果:[]},{id:2,课程:[{title:“course1.1”,结果:[]},{title:“course1.2”,结果:[]},
结果=数组.map(o=>
Object.assign(
{},
啊,,
{courses:o.courses.filter({results:{length}})=>!length}
)
);	

console.log(result);
您可以在不改变原始数据的情况下映射新对象

var数组=[{id:1,课程:[{title:“course1.1”,结果:[{title:“result1.1.1”},{title:“result1.1.2”},{title:“course1.2”,结果:[]},{id:2,课程:[{title:“course1.1”,结果:[]},{title:“course1.2”,结果:[]},
结果=数组.map(o=>
Object.assign(
{},
啊,,
{courses:o.courses.filter({results:{length}})=>!length}
)
);	
console.log(结果);
const body=[
{id:1,课程:[{title:“course1.1”,结果:[{title:“result1.1.1”},{title:“result1.1.2”},{title:“course1.2”,结果:[]},
{id:2,课程:[{title:“course1.1”,结果:[]},{title:“course1.2”,结果:[]},
];    
让results=body.find(session=>-1course.results.length
const body=[
{id:1,课程:[{title:“course1.1”,结果:[{title:“result1.1.1”},{title:“result1.1.2”},{title:“course1.2”,结果:[]},
{id:2,课程:[{title:“course1.1”,结果:[]},{title:“course1.2”,结果:[]},
];    


让results=body.find(session=>-1course.results.length)也添加想要的结果。@NinaScholz刚刚添加了它,谢谢。尝试使用$.grep(body,function(obj,index1){if($.grep(obj.courses,function(courses,index2){if(course.results.length0)返回obj;})如果可能的话,请确保我的代码中存在语法错误,但grep可能对您有用。您可以通过索引号控制返回结果。当id:1中的结果为空时,为什么返回结果会是这样?我很困惑。您的结果只有
id:2
?请同时添加所需的结果。@NinaScholz刚刚添加了它,谢谢。请尝试使用$.grep(body,function(obj,index1){if($.grep(obj.courses,function(courses,index2){if(courses.results.length0)返回obj;})如果可能的话,请确保我的代码中存在语法错误,但grep可能对您有用。您可以通过索引号控制返回结果。当id:1中的结果为空时,为什么返回结果会是这样?我很困惑。您的结果只有
id:2
?它几乎可以工作了,它正在删除第一级信息,所以我现在收到了只有没有家长id的课程。哦,你是说你需要id吗?我在问题中添加了期望值,这样你就可以看到我期望的:)谢谢你的帮助!我刚刚遇到一个错误,如果家长没有带结果的课程,它仍然返回带空结果的家长,有没有办法摆脱它?
const body=[{id:1,课程:[{title:“course1.1”,结果:[]},{title:“course1.2”,结果:[]},{id:2,课程:[{title:“course1.1”,结果:[]},{title:“course1.2”,结果:[]}]
请给我几分钟时间它几乎可以工作了,它正在删除第一级信息,所以我现在只收到没有家长id的课程。哦,你是说你需要id吗?我在问题中添加了期望值,这样你就可以看到我期望的:)谢谢你的帮助!我刚刚遇到一个错误,如果家长没有带结果的课程,它仍然会返回带空结果的家长,有没有办法摆脱它?
const body=[{id:1,课程:[{title:“course1.1”,结果:[]},{title:“course1.2”,结果:[]},{id:2,课程:[{title:“course1.1”,结果:[]},{title:“course1.2”,结果:[]}];
请给我几分钟谢谢你的回答@Nina:)谢谢你的回答@Nina:)
const body2 = [
  {id: 2,courses: [{title:"course1.1", results:[]}, {title:"course1.2",results:[]}]},   
];