📌  相关文章
📜  字符串中的重复字符 javascript (1)

📅  最后修改于: 2023-12-03 15:39:02.239000             🧑  作者: Mango

字符串中的重复字符 JavaScript

在 JavaScript 中,我们经常需要处理字符串。有时候,我们需要找出字符串中的重复字符。本文将介绍如何在 JavaScript 中找出字符串中的重复字符,以及如何删除重复字符。

找出字符串中的重复字符

在 JavaScript 中,可以使用一个对象来存储每个字符在字符串中出现的次数。然后,遍历这个对象,找到所有出现次数大于 1 的字符。以下是一个基本的实现:

function findDuplicates(str) {
  const charCount = {}; // 用于存储每个字符出现的次数
  const result = []; // 用于存储所有重复字符

  // 遍历字符串,计算每个字符出现的次数
  for (let i = 0; i < str.length; i++) {
    const char = str[i];
    charCount[char] = charCount[char] ? charCount[char] + 1 : 1;
  }

  // 遍历 charCount 对象,找到所有出现次数大于 1 的字符
  for (const char in charCount) {
    if (charCount[char] > 1) {
      result.push(char);
    }
  }

  return result;
}

这个实现中,我们使用了一个对象 charCount 来存储每个字符在字符串中出现的次数。我们首先遍历字符串,对于字符串中每个字符,我们将其出现的次数记录在 charCount 对象中。然后,我们再次遍历 charCount 对象,找到所有出现次数大于 1 的字符,并将它们存储在 result 数组中。最后,我们返回 result 数组。

删除字符串中的重复字符

除了找出字符串中的重复字符,有时我们还需要删除字符串中的重复字符。我们可以使用与上面类似的方法:使用一个对象来存储每个字符在字符串中出现的次数,然后遍历字符串,将每个字符添加到一个新的字符串中,但不包括那些在之前已经出现过的字符。

以下是一个实现:

function removeDuplicates(str) {
  const charCount = {}; // 用于存储每个字符出现的次数
  let result = ''; // 用于存储删除重复字符后的字符串

  // 遍历字符串
  for (let i = 0; i < str.length; i++) {
    const char = str[i];

    // 如果 charCount 对象中没有记录该字符,则添加到 result 中,
    // 并将该字符出现次数设为 1
    if (!charCount[char]) {
      result += char;
      charCount[char] = 1;
    }
  }

  return result;
}

这个实现中,我们首先创建了一个 charCount 对象,用于存储每个字符在字符串中出现的次数,并创建了一个空字符串 result,用于存储删除重复字符后的字符串。然后,我们遍历字符串,对于字符串中的每个字符:

  • 如果该字符不在 charCount 对象中,说明这是第一次出现,我们将该字符添加到 result 字符串中,并将该字符出现次数设为 1。
  • 如果该字符已经在 charCount 对象中,说明该字符已经出现过了,我们不需要将其添加到 result 字符串中。

最后,我们返回 result 字符串,其中不包括任何重复字符。

总结

本文介绍了如何在 JavaScript 中找出字符串中的重复字符,以及如何删除由重复字符组成的字符串。我们使用了一个对象来存储每个字符在字符串中出现的次数,并遍历对象来查找出现次数大于 1 的字符或删除重复字符。这是一种基本的方法,可以在实际项目中进行修改和优化。