You need to enable JavaScript to run this app. JavaScript检测数组元素时第二个数组首元素未被匹配问题
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript检测数组元素时第二个数组首元素未被匹配问题

JavaScript数组匹配漏检问题排查

问题原因

  • 核心判断逻辑存在边界遗漏:未被检测的eating字符串首字母为e,且长度恰好为6。你编写的原有判断条件仅覆盖了两种场景:
    1. 首字母不为e且长度小于6
    2. 首字母为e且长度大于6
      长度等于6的场景完全没有命中规则,因此eating不会被推入结果数组。
  • 潜在隐患:循环变量i未用let声明,会成为全局变量,可能造成作用域污染。

解决方法

根据你的逻辑补全边界判断即可,假设你的规则是:首字母为e的字符串只要长度≥6就收录,首字母不为e的字符串只要长度≤6就收录,修正后的代码如下:

function six(sll) {
  let list = [];
  // 声明循环变量i为局部变量
  for (let i = 0; i < sll.length; i++) {
    console.log(sll[i]);
    const firstChar = sll[i].slice(0, 1);
    const strLen = sll[i].length;
    // 补全等于6的边界判断
    if (firstChar !== "e" && strLen <= 6) {
      list.push(sll[i]);
    } else if (strLen >= 6 && firstChar === "e") {
      list.push(sll[i]);
    }
  }
  return list;
}
// 第一个测试数组
let sxt = ["taco", "eggs", "excellent", "exponent", "artistic", "cat", "eat"];
console.log(six(sxt));
// 第二个测试数组
let xxx = ["eating", "proper", "key", "earth"];
console.log(six(xxx));

如果你的规则对长度等于6的场景有其他要求,只需要调整上述判断中的比较运算符即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 22:06:02