函数的问题给我总是不确定的

时间:2019-08-06 11:10:32

标签: javascript

等轴测图是一个无重复字母,连续或不连续的单词。实现一个函数,该函数确定仅包含字母的字符串是否为等距图。假设空字符串是一个等轴测图。忽略字母大小写。

这是我的答案。

didStartUserGesture

2 个答案:

答案 0 :(得分:0)

在您的代码中,您正在测试字符是否等于字符串中的第一个字符。如果它们是,则返回false,否则返回true。现在,这是一个错误的逻辑。您需要对照字符串中的其余字符检查单个字符。从最基本的意义上讲,您需要运行一个嵌套循环。

这是解决问题的一种方法。

function isIsogram(str){
   var i, j; //declaring two variables to assist in nested loop
   str = str.toLowerCase(); //making the string convert to lowercase because a===A will return false
   for(i = 0; i < str.length; ++i) { //first loop to select a character from the string to compare against the rest
     for(j = i + 1; j < str.length; ++j) { //second loop to compare the above selected character with the rest of the characters in the string
       if(str[i] === str[j]) { // now if there is any character that is equal we set it to false as it is not an isogram
         return false;
       }
     }
   }
   return true; //if the code reaches here, it is an isogram
}

还有许多其他方法可以解决此问题。尝试自己寻找其他解决方案。

答案 1 :(得分:0)

或者您可以根据需要这样做

let isIsogram = (str) => str.split("").every((c, i) => str.indexOf(c) == i);

console.log(isIsogram("thomas")); //true
console.log(isIsogram("moses")); //false
console.log(isIsogram("world")); //true
console.log(isIsogram("a b c")); //false(space repeat twice)