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

如何检查字符串的字符是否已存在于数组中并实现去重插入

问题原因

你原有代码的if判断逻辑错误:直接将单个字符和整个数组做等值比较,无法实现「检查当前字符是否已存在于数组中」的需求。

修复方案

最小改动版本(基于你原有代码修改)

直接用数组的includes()方法判断字符是否已存在,同时用自带的push()方法代替手动维护计数器,代码更稳定:

const balanced = string => {
  var characters = [];
  for (var i = 0; i < string.length; i++) {
    const currentChar = string.charAt(i);
    // 仅当字符未在数组中存在时执行插入
    if (!characters.includes(currentChar)) {
      characters.push(currentChar);
    }
  }
  console.log(characters);
  // 你的其他业务逻辑...
  return characters;
};

// 测试输入"data",输出为 ["d","a","t"]

其他可选实现

  • 兼容低版本JS环境:用indexOf()替代includes(),当返回值为-1时说明字符不存在:
if (characters.indexOf(currentChar) === -1) {
  characters.push(currentChar);
}
  • 极简实现(ES6+环境):利用Set天然去重且保留插入顺序的特性,一行代码即可完成需求:
const getUniqueChars = string => [...new Set(string)];

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 19:15:00