如何修改JS奖学金筛选代码,下拉选大一或大二均展示对应适配奖学金
解答
你的现有代码结构没有问题,仅修改两处代码即可实现单奖学金适配多个年级的需求,不需要重构整体逻辑:
- 修改
getScholarships方法内的奖学金standing字段,从单字符串改为数组类型,即可给单个奖学金配置多个适配年级 - 修改
filterStanding筛选函数的判断逻辑,从全等匹配改为数组包含匹配,同时兼容原有单值配置的写法
完整修改示例
修改筛选逻辑
function filterStanding(scholarship) { if (!filters.standing.length) return true // 同时兼容standing为单字符串(原有配置)和数组(多值配置)两种格式 const allowedStandings = Array.isArray(scholarship.standing) ? scholarship.standing : [scholarship.standing] return allowedStandings.includes(filters.standing) }
多值配置奖学金示例
function getScholarships() { return [ { name: "大一大二可申请的奖学金示例", link: "#", need: "yes", standing: ["Freshmen", "Sophomore"], // 配置多个适配年级 }, { name: "Scholarship 2", link: "#", need: "no", standing: "Sophomore", // 原有单值写法依然可正常运行 }, { name: "Scholarship 3", link: "#", need: "yes", standing: "Junior", } ]; }
其他代码不需要做任何改动,修改后即可实现你需要的筛选效果。
内容的提问来源于stack exchange,提问作者Samuel Mills
相关产品推荐
相关产品推荐

