簡體   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