You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何仅用for循环筛选数组中不含'l'的元素?解决代码重复问题

问题分析与解决

原代码出现重复元素的原因是:内层循环遍历字符串的每个字符时,只要当前字符不是'l'就将整个元素推入新数组,导致一个元素会被重复添加多次(次数等于该元素中不含'l'的字符数量)。

修正后的代码

var list = ['sage', 'carolina', 'everly', 'carlos', 'frankie'];
var list1 = [];

// 遍历原数组的每个元素
for (let i = 0; i < list.length; i++) {
  let containsL = false;
  // 检查当前元素的每个字符
  for (let j = 0; j < list[i].length; j++) {
    if (list[i][j].toLowerCase() === 'l') {
      containsL = true;
      break; // 找到'l'后立即停止检查当前元素
    }
  }
  // 确认元素不含'l'时,推入新数组
  if (!containsL) {
    list1.push(list[i]);
  }
}
console.log(list1); // 输出结果: ["sage", "frankie"]

逻辑说明

  • 外层for循环遍历原数组的所有元素,避免使用for...in(防止遍历到数组原型链上的额外属性)
  • 对每个元素,先初始化containsL标记为false,默认该元素不含'l'
  • 内层for循环遍历元素的每个字符,通过toLowerCase()统一转换为小写后检查是否等于'l',一旦找到就将containsL设为true并跳出内层循环(无需继续检查剩余字符)
  • 最后判断containsL为false时,说明该元素完全不含'l',调用push()将其加入新数组

内容的提问来源于stack exchange,提问作者Alaby Martinez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 09:42:48