如何修改JavaScript函数,过滤数组中非字符串与奇数长度字符串?
修正后的函数实现
你的原代码存在两个核心问题:一是未过滤非字符串类型元素,二是错误地直接对元素本身做取余判断,而非针对字符串长度。以下是符合需求的实现:
function evenLength(items) { return items.filter(item => { // 先校验是否为字符串类型,再检查长度是否为偶数 return typeof item === 'string' && item.length % 2 === 0; }); }
关键说明:
- 通过
typeof item === 'string'筛除数组中所有非字符串元素(比如数字、对象、布尔值等) - 用
item.length % 2 === 0判断字符串长度是否为偶数,只有同时满足两个条件的元素才会被保留 - 简化了代码结构,直接在
filter的回调中返回判断逻辑,无需额外变量存储结果
内容的提问来源于stack exchange,提问作者user18001505
相关产品推荐
相关产品推荐

