如何简化文件名判断条件的代码写法?
简洁实现文件名关键词判断的方案
可以将每组关键词存入数组,借助数组的some()方法批量判断文件名是否包含组内任意关键词,这样即便后续新增更多关键词,代码也不会变得冗长难维护。
优化后的代码(兼容旧环境)
// 定义各组关键词数组 const group1Keywords = ["_A_", "_B_"]; const group2Keywords = ["_8_", "_9_"]; // 判断文件名是否匹配对应组的关键词 const isGroup1 = group1Keywords.some(keyword => doc.name.indexOf(keyword) !== -1); const isGroup2 = group2Keywords.some(keyword => doc.name.indexOf(keyword) !== -1); if (isGroup1) { doAction(1); } else if (isGroup2) { doAction(2); } else { doAction(3); }
更简洁的写法(支持ES6环境)
如果你的运行环境支持ES6的String.prototype.includes(),可以替换indexOf,让代码可读性更强:
const group1Keywords = ["_A_", "_B_"]; const group2Keywords = ["_8_", "_9_"]; const isGroup1 = group1Keywords.some(keyword => doc.name.includes(keyword)); const isGroup2 = group2Keywords.some(keyword => doc.name.includes(keyword)); if (isGroup1) { doAction(1); } else if (isGroup2) { doAction(2); } else { doAction(3); }
扩展优势
后续需要新增关键词时,只需要往对应的数组里添加元素即可。比如要给第一组新增_C_,只需修改group1Keywords = ["_A_", "_B_", "_C_"],无需改动判断逻辑,维护成本更低。
内容的提问来源于stack exchange,提问作者Tsunami Lâm
相关产品推荐
相关产品推荐

