2014-10-29 73 views
0
function match (string,pattern){ 

    pattern = pattern.toLowerCase(); 
    string = string.toLowerCase(); 

    for (var i=0;i<pattern.length;i++){ 
    for (var j=0;j<string.length;j++){ 
     if (pattern.charAt[i]==string.charAt[j]){ 

     } 
     *if i has not been found, abort and return false* 

    } 
    *as function not aborted, char i=found therefore return true* 
    } 


} 

//如果模式中的所有單個字母出現在字符串中(無論順序如何),我需要返回true。 我如何編碼最後兩行**?如果所有字母都顯示在字符串中,則返回true?

+1

請添加您正在使用的標記語言。 – 2014-10-29 16:38:12

回答

0
function match (input,pattern){ 

    pattern = pattern.toLowerCase(); 
    input= input.toLowerCase(); 

    for (var i=0;i<input.length;i++){ 
    var found = false; 
    for (var j=0;j<pattern.length;j++){ 
     if (pattern.charAt(j)==input.charAt(i)){ 
     // Letter was found, skip to next one 
     found = true; 
     break; 
     } 
    } 

    // As soon as we conclude that one letter was not found, abort 
    if (found == false){ 
     return false; 
    } 
    } 

    // All letters were found, return SUCCESS 
    return true; 
} 

是這樣的嗎?

+0

它說某處有意外的標識符? – Tom 2014-10-29 16:53:44

+0

更新了答案。順便說一句,你真的應該學習如何使用'Firebug'進行調試:http://getfirebug.com/ – 2014-10-29 16:55:42

0

如果您使用Array.every會更好。它更短,你的意圖很明顯。

function match (str, pattern) { 
    str = str.toLowerCase(); 
    return pattern.toLowerCase().split("").every(function(c) { 
     return str.indexOf(c) !== -1; 
    }); 
} 
0

這應該規模比有for循環嵌套在另一個好得多:

function everyChar(sample,pattern){ 
    var patTable=Object.create(null); 
    var aSample=Array.prototype.slice.call(sample.toLowerCase()); 
    var aPattern=Array.prototype.slice.call(pattern.toLowerCase()); 
    aPattern.forEach(function(c){patTable[c]=true;}); 
    aSample.forEach(function(c){delete patTable[c];}); 
    return Object.keys(patTable).length==0; 
} 

var sample_pass="pack my box with five dozen liquor jugs"; 
var pat="the quick brown fox jumped over the lazy dogs"; 
everyChar(sample_pass,pat); 

/* 
true 
*/ 

var sample_fail="pack my bag with five dozen liquor jugs"; 
everyChar(sample_fail,pat); 

/* 
false 
*/ 
相關問題