📅  最后修改于: 2023-12-03 15:24:13.146000             🧑  作者: Mango
在 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 可以简化代码。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 中查找字符串的唯一字符的两种方法,你可以根据自己的需要来选择使用哪种。