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

如何移除数组中的重复字符串?现有JavaScript代码无法正常运行

数组去重代码问题排查与修复

原代码的核心问题

  • 循环内的判断input[i] == input[i]永远为真,第一次循环就触发return false,直接终止函数,后续逻辑完全没机会执行
  • return语句放在循环内部,导致函数无法遍历完整数组
  • result.push(input[i])写在循环外部,此时i已经超出数组下标范围,即使执行也只会添加undefined
  • 整体逻辑错误:判断重复的逻辑应该是检查当前元素是否已存在于结果数组,而非和自身比较

修复后的实现(基础循环版)

var input = ['john','john','rio','ravi','josva','ravi'];

let removeDuplicates = function(){
    let result = [];
    for (let i = 0; i < input.length; i++){
        // 检查当前元素是否不在结果数组中
        if(!result.includes(input[i])){
            result.push(input[i]);
        }
    }
    console.log(result); // 输出: ['john', 'rio', 'ravi', 'josva']
};
removeDuplicates();

更简洁的实现(利用Set特性)

Set会自动去重,结合扩展运算符可以快速完成去重:

var input = ['john','john','rio','ravi','josva','ravi'];

let removeDuplicates = function(){
    let result = [...new Set(input)];
    console.log(result); // 输出: ['john', 'rio', 'ravi', 'josva']
};
removeDuplicates();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 11:02:45