2014-10-29 1 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

당신이 태그로 사용하는 언어를 추가하십시오. –

답변

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

+0

답변을 업데이트했습니다. Btw,'Firebug'로 디버깅하는 법을 배워야합니다 : http://getfirebug.com/ –

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 
*/ 
관련 문제