📌  相关文章
📜  如何在 JavaScript 中查找字符串的唯一字符?(1)

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

如何在 JavaScript 中查找字符串的唯一字符?

在 JavaScript 中,有时候我们需要查找一个字符串中唯一出现的字符,本文将介绍两种方法。

方法一:使用对象

我们可以先声明一个空对象,遍历需要查找的字符串,将字符串中每个字符作为对象的 key,出现的次数作为 value 存储起来。最后再遍历这个对象,找到 value 为1 的 key,就是唯一出现的字符。

function findUniqueCharacter(str) {
  let obj = {};
  for (let i = 0; i < str.length; i++) {
    if (!obj[str[i]]) {
      obj[str[i]] = 1;
    } else {
      obj[str[i]]++;
    }
  }
  for (let key in obj) {
    if (obj[key] === 1) {
      return key;
    }
  }
  return null;
}

console.log(findUniqueCharacter('aabbcdd')); // 'c'
console.log(findUniqueCharacter('aabbcc')); // null
方法二:使用 ES6 的 Map

使用 ES6 的 Map 可以简化代码。Map 对象保存键值对,并且能够记住键的原始插入顺序,所以我们可以把字符串中的每个字符当成一个 key,出现次数当成 value 存到 Map 中。最后遍历 Map,找到 value 为 1 的 key。

function findUniqueCharacter(str) {
  let map = new Map();
  for (let i = 0; i < str.length; i++) {
    if (!map.has(str[i])) {
      map.set(str[i], 1);
    } else {
      map.set(str[i], map.get(str[i]) + 1);
    }
  }
  for (let [key, value] of map) {
    if (value === 1) {
      return key;
    }
  }
  return null;
}

console.log(findUniqueCharacter('aabbcdd')); // 'c'
console.log(findUniqueCharacter('aabbcc')); // null

以上就是在 JavaScript 中查找字符串的唯一字符的两种方法,你可以根据自己的需要来选择使用哪种。