배열 객체의 속성 값에 따라 지정된 요소를 찾습니다.

2273 단어
최근 프로젝트에 백명단 창을 표시하는 주소가 있습니다. 사용자가 선택한 주소가 백명단에 없으면 창을 보여줍니다.처음에 이것은 매우 간단한 수요라고 생각했다. for순환을 사용하여 고객이 선택한 주소의 도시 코드가 백명단 도시 코드에 있는지 판단하면 된다. 없으면 고객이 선택한 주소가 백명단에 있지 않다는 것을 알 수 있다.
다음은 화이트 리스트(배열 객체)입니다.
cityList = [
    {
        cityCode :"A350500000",
        provinceCode : "A350000000"
    }
]

다음은 for 순환의 코드입니다.
/*
* sendCityCode          
*/
for (var i=0; ilength; i++) {

    if(cityList[i].cityCode != sendCityCode){
        console.log(“          ”)   
    }
}

이렇게 쓰면 화이트리스트 도시가 하나일 때는 문제가 없지만 화이트리스트 도시가 1개보다 크면 선택한 주소가 있고 하나이기 때문에 for순환은 반드시if의 조건문을 촉발한다. 이렇게 하면 당신이 어디를 선택하든지 화이트리스트가 반드시 촉발하는 결말이 된다.그래서 for 순환을 사용하여 일치하는 사고방식은 이때의 수요에 현저히 부합되지 않았다. 나중에 사고방식을 바꾸었다. 선택한 주소가 화이트 리스트의 주소 중 어느 하나와 일치하기만 하면 된다. 즉, 나는 화이트 리스트 대상의 주소 인코딩 속성 값에서 고객이 선택한 주소 인코딩을 찾아야 한다.
현재 화이트리스트 도시 목록:
cityList = [
    {
        cityCode :"A350500000",
        provinceCode : "A350000000"
    },
    {
        cityCode :"A361100000",
        provinceCode : "A360000000"
    }
]

처리 방법:
var arr= cityList.filter(function(item){
    return item.cityCode == sendCityCode; 
})
//  ,   arr        ,                0,                     
if(arr.length==0){
    console.log(“          ”)
}

여기에 사용된 것은 필터 방법입니다: 필터 () 방법은 일치하는 원소 집합을 지정한 선택기의 원소로 축소합니다.이 방법은 원수 그룹을 바꾸지 않고, 선별 후 조건을 만족시키는 숫자 그룹을 되돌려줍니다.
이상은 기본적으로 수요를 완성했다.

좋은 웹페이지 즐겨찾기