2011-09-19 4 views

답변

5

각 항목에 대해 정규식을 사용하고 싶습니다. jQuery의 grep 함수로이를 수행 할 수 있습니다. 게시물에 같이

http://api.jquery.com/jQuery.grep/

2

당신이 몇하게 당신이

function FilterArray(state,arr){ 
    return $.grep(arr, 
        function(el,i) {return (el.substring(0,2)==state)} 
    ); 
} 

을 할 수있는 당신에게 실제 FilterArray 기능을 구현하기 위해 jQuery.grep

var arrStateCityCA = 
    $.grep(arrStateCityAll,function(el,i){return (el.substring(0,2)=='CA')}); 

Demo at jsfiddle

를 사용할 수 있습니다 나귀 umptions.

  1. 상태는 항상 2 자입니다.

  2. 항상 상태는 처음 2 자입니다.

그리고 대소 문자 구분을 기억 물론

'Ca'에 즉 'CA' 동일하지 (이 기능 대소 문자를 구분합니다).

+0

웁스 - 내 'substring'매개 변수가 잘못되었습니다! –

2

이렇게하면됩니다.

var arrStateCityCA = []; 
for (var i = 0;i<arrStateCityAll.length;i++){ 
    if (arrStateCityAll[i].substr(0,2) == 'CA'){ 
     arrStateCityCA.push(arrStateCityAll[i]); 
    } 
} 
3

자바 스크립트의 Array.filter을 사용할 수 있습니다.

var arrStateCityAll = ['CA_Alameda','CA__Pasadena','CA_Sacramento','NY_Albany','NY_Buffalo','NY_Ithaca'] 

var arrStateCityCA = arrStateCityAll.filter(function (element) { 
    return element.indexOf("CA_") == 0; 
}); 

위에 링크 된 mozilla 설명서에는 암시 적으로 필터를 지원하지 않는 브라우저에 대한 해결책이 있습니다. 당신이 당신의 국가 및 도시 이름 사이에 undescore을 위하여려고하는 경우에

+0

고마워,이 잘 작동합니다. – user815460

+0

글쎄, 파이어 폭스에서 잘 작동하지만 불행히도 IE에서는 그렇지 않다. 한숨 ... – user815460

+0

페이지에 대한 해결책이 있습니다 : https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/filter#Compatibility – Dennis

1

, 첫 번째 배열 값

function getSubSetByState(set,state) { 

    var result = []; 
    for(var i=0,l=set.length;i<l;++i) { 
     if(set[i].split('_')[0] === state) { 
      result.push(set[i]); 
     } 
    } 

    return result; 
} 

사용에 대한 밑줄 및 테스트에 분할 할 수있는 경우에 그것을 장소의 세트를 제공함으로써, 그리고 당신이 찾고있는 주.

관련 문제