繁体   English   中英

使用 javascript 在字符串中查找唯一字符

[英]To find unique characters in a string using javascript

编写一个 JavaScript 程序来查找字符串中的唯一字符。 function uniqueCharacters 必须将字符串作为其参数,并在删除字符串中多次出现的所有字符后返回相同的值。 这是主要的function。

function modifyString 是子函数。 这是从 function uniqueCharacters 中调用的,其字符串与参数相同。 此 function 将删除所有空白字符并将整个字符串转换为小写并将其返回给调用者。

注意:您可以通过在 console.log 中调用 function 来验证它的正确性

console.log(uniqueCharacters("Welcome to the Javascript course"));

我哪里错了? 我的代码(如下)无法正常工作。 output 应该是: welcomthjavsripu

function modifyString(str) {
    return str.charAt(0).toLowerCase() + str.slice(1);
}

function uniqueCharacters(str)
{
   modifyString(str);
   var str1=str;
   var uniql= "";
   for(var x=0;x<str1.length;x++)
   {
       if(uniql.indexOf(str1.charAt(x))==-1)
       {
           if(str.charAt(x) === ' ')
           {
               continue;
           }
           uniql += str1[x];
       }
   }
   return uniql;
}
console.log(uniqueCharacters("Welcome to the Javascript course"));

我发现您的代码有两个问题:

  • 首先,您需要将modifyString(str)替换为str = modifyString(str)
  • 其次,您只在字符串的第一个字符上调用 toLower,但您希望整个字符串都是小写的。 modifyString function 应该简单地return str.toLowerCase();

我会使用 Map 计数字符的方法,然后过滤它们。

 function uniqueCharacters(str) { const uniqChar = new Map(); const result = [] for(const character of str) { if(uniqChar.has(character)) { uniqChar.set(character, uniqChar.get(uniqChar) + 1) } else { uniqChar.set(character,1) } } uniqChar.forEach((val,key) => { if(val === 1) result.push(key) }) return result; } console.log(uniqueCharacters("AbaacddeR"));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM