Node.js中遍历语言数组校验是否不存在'en'元素的实现方法
核心实现思路
你之前想到的map方法并不适配这个场景:map的作用是遍历数组元素、对每个值做转换后返回一个新数组,本质是做元素映射的,不适合做全局存在性校验。
针对「判断数组中是否不存在某元素」的需求,直接用JS数组的原生方法就可以实现,写法简洁性能也足够:
首选方案:includes写法(ES6+支持)
includes是专门用于判断数组是否包含指定元素的原生方法,会直接返回布尔值表示存在性:
// 当数组中不存在'en'时触发日志 if (!language.includes('en')) { console.log("no en") }
兼容老旧环境的方案:indexOf写法
如果需要适配不支持includes的老旧运行环境,可以用indexOf实现:indexOf会返回目标元素在数组中的索引位置,找不到对应元素时会返回-1
// 索引为-1说明数组中不存在目标值 if (language.indexOf('en') === -1) { console.log("no en") }
注意:不要硬套
map实现这个需求,map不会自动帮你汇总全局的判断结果,写出来的代码冗余且没必要。存在性校验场景下,上述两个原生方法是最优解。
内容的提问来源于stack exchange,提问作者Gianluca
相关产品推荐
相关产品推荐

