gpt4 book ai didi

javascript - 将 if/else 逻辑添加到 JavaScript 过滤器

转载 作者:行者123 更新时间:2023-11-30 07:30:21 25 4
gpt4 key购买 nike

我有一个对象数组,我用两个不同的数组对其进行过滤。该数组是我要按年级和学科筛选的学习类列表。

我想出了这段代码:

this.schoolActivity.filter(x => {
return (
this.activeSubjects.includes(x.subject.toLowerCase()) &&
this.activeGrades.includes(x.grade)
);
});

这很好用,但这里的问题是,如果没有活跃的主题(受过滤依据)或相同的成绩,则没有任何返回。如果存在事件过滤器,我知道如何通过按主题/等级向唯一过滤器添加逻辑来改进此过滤器吗?

最佳答案

只需添加一个||检查,看看有问题的数组的长度是否为0:

const { activeSubjects, activeGrades } = this;
this.schoolActivity.filter(x => {
return (
(activeSubjects.length === 0 || activeSubjects.includes(x.subject.toLowerCase())) &&
(activeGrades.length === 0 || activeGrades.includes(x.grade))
);
});

您可以将计算复杂度提高到 O(n) 而不是 O(n^2) 通过使用几个 Set 而不是 includes,但这可能无关紧要。

关于javascript - 将 if/else 逻辑添加到 JavaScript 过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57586475/

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