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

JavaScript 如何查找列表中的重复值?附错误代码求解决方案

报错原因
  • 初始化错误:你第一行将names赋值为字符串类型的innerText结果,字符串不存在push方法,调用时会直接触发类型错误。
  • 运算符使用错误:in运算符用于判断属性名/索引是否存在于对象/数组中,无法判断某个值是否为数组的元素。
可行修复方案

基础修复版(兼容旧浏览器)

// 初始化names为数组,存入第一个元素的文本值
let names = [itemList[0].getElementsByTagName("span")[0].innerText];
// 循环变量用let声明避免全局污染
for (let i = 1; i < itemList.length; i++) {
  const currentText = itemList[i].getElementsByTagName("span")[0].innerText;
  // 用includes判断值是否已存在于数组中
  if (!names.includes(currentText)) {
    names.push(currentText);
  }
}

简洁优化版

利用Set自动去重的特性,可以大幅简化代码:

const names = [...new Set(
  Array.from(itemList).map(item => item.getElementsByTagName("span")[0].innerText)
)];
补充注意点

如果itemList可能为空,建议在开头加非空判断,避免读取itemList[0]时报错:

if (itemList.length === 0) {
  const names = [];
  // 后续逻辑
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 15:54:08