2016-03-04 122 views
0

我在小挑战中遇到了一些问题。我试图检查一个字符串的字符是否在数组中找到,如果是,停止循环,记录值,并重新开始一个新的字符串字符。任何人都可以ELP检查字符串字符是否与数组值匹配

function LetterChanges(str) {  
    var alphabet = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"]; 
    // code goes here 
    var myString = ""; 
    for(var i = 0; i <= myString.length; i++) { 
     for(var o = 0; o < 25; o++){ 
      var getChar = myString += str.charAt(i) 
      if (getChar == alphabet[o]){ 
       alert(getChar); 
       break; 
      } 
     } 
    } 
    alert(getChar);   
} 

// keep this function call here 
LetterChanges("Test");` 

回答

1
function LetterChanges(str) { 
    // code goes here 
    var regex=/[abcdefghijklmnopqrstuvwxyz]/; 

    // simply you can give as below 
    regex = /[a-z]/; 

    //if you want to match Cap A-Z too make the regex to ignore case as below 
    // regex = /[a-z]/i; 

    var myString = ""; 
    for (var i = 0; i < str.length; i++) { 
     var char = str[i]; 
     if (regex.test(char)) { 
      myString += char; 
      console.log(myString) 
     } 
    } 
    console.log(myString); 
} 

// keep this function call here 
LetterChanges("Test"); 
0
  • 如果你刚刚起步的,看看如何使用debugger和断点。他们会帮助你弄清楚你的代码在做什么。
  • 尝试循环使用alphabet.length而不是25
  • 创建var getChar似乎没有必要。尝试只是在做if(str.chartAt(i) == alphabet[o])
0

function LetterChanges(str) {  
 
    var alphabet = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"]; 
 
    
 
    
 
    for(var i = 0; i <= str.length; i++) { 
 
     for(var o = 0; o < 25; o++){ 
 
       
 
      if (str.charAt(i) == alphabet[o]){ 
 
       alert(getChar); 
 
       break; 
 
      } 
 
     } 
 
    } 
 
    alert(getChar);   
 
} 
 

 
// keep this function call here 
 
LetterChanges("Test"); </script>

需要注意的是,字母 'T' 将不会在阵列相匹配。所以只有'e','s','t'会被警告。

相关问题