gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 17:24:17 24 4
gpt4 key购买 nike

考虑这个数组:

const body = [
{id: 1,courses: [{title:"course1.1", results:[]}, {title:"course1.2", results:[]}]},
{id: 2,courses: [{title:"course1.1", results:[]}, {title:"course1.2",results:[]}]},
];

我正在尝试获取正文中第一个没有结果的类(class)的项目。

我试过这个:

body.filter(session=>session.courses.filter(course=>course.results.length<=0));

但由于我不明白的原因,它会返回所有项目。

任何帮助将不胜感激,谢谢!

附注我已经尝试使用 Array.some 和简单的 forEach,但没有成功。

编辑:我忘记包含我的 jsfiddle 测试,https://jsfiddle.net/jonathanlaf/4os0fzv1/

Edit2:我知道过滤器将返回所有匹配的结果,这很好,我可以只获取新返回数组的第一个索引。

Edit3:我实际上希望新返回的数组看起来像这样:

const body2 = [
{id: 2,courses: [{title:"course1.1", results:[]}, {title:"course1.2",results:[]}]},
];

最佳答案

这应该可以做到:

const body = [ {id: 1,courses: [{title:"course1.1", results:[{title:"result1.1.1"}, {title:"result1.1.2"}]}, {title:"course1.2", results:[]}]}, {id: 2,courses: [{title:"course1.1", results:[]}, {title:"course1.2",results:[]}]}, {id: 3,courses: []}];

console.log(body.reduce((r,c) => (c.courses.length ? r.push({ id: c.id, courses: [...c.courses.filter(({results}) => !results.length)]}) : true) && r, []))

它使用 reduce和一个filter得到你需要的东西。

更新:添加了处理courses只是一个没有结果的空数组的情况,例如{id:3,类(class):[]}

关于javascript - 获取数组中特定参数为空的第一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51953857/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com