JavaScript 如何查找字符串的唯一字符
本文旨在使用JavaScript查找字符串中的唯一字符。这意味着如果字符在字符串中只出现一次,我们不能再包含它。
我们有几种方法可以使用JavaScript查找字符串中的唯一字符,具体如下所述:
- 使用简单方法
- 使用Set
- 使用展开运算符
- 使用indexOf()方法
- 使用正则表达式
- 使用 _.uniq() 方法
示例:
Input: Geeksforgeeks
Output: Geksforg
Input: Geeksforgeeks is a great site for computer science
Output: Geksforg Iaticmpun
方法1: 使用简单的方法
这是一种从字符串中找到唯一字符的简单方法。在这种方法中,我们创建一个变量名为 uniq ,并使用 for 循环遍历字符串的每个字符,在每次迭代中,我们检查 uniq 是否包含这个字符。
示例: 这个示例展示了上面解释的方法。
function findUnique(str) {
// The variable that contains the unique values
let uniq = "";
for (let i = 0; i < str.length; i++) {
// Checking if the uniq contains the character
if (uniq.includes(str[i]) === false) {
// If the character not present in uniq
// Concatenate the character with uniq
uniq += str[i]
}
}
return uniq;
}
console.log(findUnique("Geeksforgeeks"))
console.log(findUnique("Geeksforgeeks Is a great
site for computer science"))
输出
Geksforg
Geksforg Iaticmpun
方法2:使用 Set
在这种方法中,我们使用集合数据结构。集合数据结构只包含独特的值,我们利用这一点。所以,为了使用 Set 从字符串提取独特的值,我们按照以下步骤进行。
- 使用 split() 方法将字符串转换为数组。
- 使用 new Set() 创建一个集合,并将转换后的数组传入。
- 现在使用展开运算符将集合转换为数组,例如:[…集合]。
- 然后将该数组连接成一个字符串。
示例: 这个示例展示了上述方法。
// Javascript program to extract unique
//characters from a string
function findUnique(str) {
// Split the string to make array
str = str.split("")
// Create a set using array
str = new Set(str);
// Convert the set into array using spread
// operator and join it to make string
str = [...str].join("");
return str;
}
console.log(findUnique("Geeksforgeeks"))
console.log(findUnique("Geeksforgeeks Is a
great site for computer science"))
输出
Geksforg
Geksforg Iaticmpun
方法3:使用扩展运算符
在这种方法中,首先我们使用扩展运算符将字符串转换成数组,例如 […str] ,然后我们对该数组应用reduce方法。
示例: 这个示例展示了上述解释的方法。
// Javascript program to extract unique characters from a string
function findUnique(str) {
return [...str].reduce((acc, curr) => {
return acc.includes(curr) ? acc : acc + curr;
}, "")
}
console.log(findUnique("Geeksforgeeks"))
console.log(findUnique("Geeksforgeeks Is
a great site for computer science"))
输出
Geksforg
Geksforg Iaticmpun
方法4:使用indexOf()方法
在这个方法中,我们将使用一个 for循环 来迭代整个字符串,然后使用 indexOf()方法 来检查每个字符(使用 charAt()方法 )在字符串中的索引,判断它是否重复。然后我们会在一个空字符串中(最初我们会声明为空字符串),存储所有独特的字符。
示例: 这个示例展示了上述解释的方法。
let uniqueCharacters = (stringg) => {
let unique_characters = "";
for (let i = 0; i < stringg.length; i++) {
if (unique_characters.indexOf(stringg.charAt(i)) < 0) {
unique_characters += stringg.charAt(i);
}
}
return unique_characters;
};
console.log(uniqueCharacters("Geeksforgeeks"));
输出
Geksforg
方法5:使用正则表达式
在这个方法中,我们将使用正则表达式来查找字符串中的唯一元素。
示例:
function uniqueChar(str) {
// Use a regex pattern to match unique characters
let uniqueChars = str.match(/(.)(?!\1)/g);
return uniqueChars;
}
let str = "Geeksforgeeks";
let newStr = uniqueChar(str);
console.log(newStr);
输出
[
'G', 'e', 'k', 's',
'f', 'o', 'r', 'g',
'e', 'k', 's'
]
方法6:使用_.uniq()方法
_.uniq方法用于通过使用SameValueZero进行相等性比较,从所有给定的数组中按顺序创建一个唯一值数组。
示例:
// Requiring the lodash library
const _ = require("lodash");
// Original array
let y = "Geeksforgeeks";
// Use of _.uniq()
// method
let gfg = _.uniq(y).join('');
// Printing the output
console.log(gfg);
输出:
Geksforg
极客教程