[ Web 관련 ]/자바스크립트

자바스크립트, 제이쿼리 배열 내부 검색, 변경 등 (json) 참조

BIZLAB 2020. 7. 28. 14:49
search_filter = {
        "kind": "all",
        "sdate": "2018-01-20",
        "edate": "2020-01-20",
        "member": ["mem1", "mem2", "mem3"]
        "target": ["tg1", "tg2", "tg3"]
    };


    function member_sel(uid){

        //없으면 추가하기
        var mem_data = Array();

        console.log(typeof (mem_data));
        console.log($.inArray("mem1", mem_data));


        //member key가 있는지 확인 hasOwnProperty()
        console.log(Object.keys(search_filter));
        if(search_filter.hasOwnProperty('member')){
            console.log('member 있음');

            var mem_data = search_filter.member;

            if($.inArray(uid, mem_data) < 0){
                //없으면 추가 + 체크 활성화 표시
                $('#div_'+uid+ ' .fa-check').css('color','#1fc7ff');
                mem_data.push(uid);
            }else{
                //있으면 삭제  + 체크 비 활성화 표시
                $('#div_'+uid+ ' .fa-check').css('color','#a6b3ba');

                //찾아서 삭제 하기
                var i = 0;
                mem_data.find(function(item) {
                    console.log(i+">"+item);
                    if(item===uid) mem_data.splice(i, 1);
                    i++;
                })
            }

        }else{
            console.log('member 없음');
            //없으면 추가 + 체크 활성화 표시
            $('#div_'+uid+ ' .fa-check').css('color','#1fc7ff');
            mem_data.push(uid);
        }


        console.log(mem_data);

        //주 배열 값 변경
        //search_filter.member.push(mem_data);
        search_filter.member = Object.values(mem_data); //object 형식을 array 형으로 변경
        console.log(search_filter);
        
        
  }

 

 

 

참조

bblog.tistory.com/300

 

자바스크립트의 유용한 배열 메소드 사용하기... map(), filter(), find(), reduce()

대부분의 간단한 로직은 배열로 표현이 가능하고 반복문으로 원하는 결과를 얻을 수 있습니다. 예를들어 DB에서 읽어온 거대한 데이터 리스트를 걸러내고 걸러내어 클라이언트가 원하는 모��

bblog.tistory.com