JavaScript 如何查找字符串的唯一字符

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  

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程