ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JS] 배열에서 동명이인 찾기. Array.filter()
    JavaScript 2022. 10. 25. 10:11
    반응형
    SMALL

     

     

    Array.filter()
    배열의 요소들 중에 특정 조건을 만족하는 요소들을 모아서
    새로운 배열로 리턴

     

     

     

    // 아래의 배열에서 MyNm이 같은 요소만 찾아 새로운배열로 리턴
    let data = [
      {
        "BirthYmd": "20220915",
        "Sex": "M",
        "SchoolNm": "EM",
        "Id": "001104",
        "UnitNo": "22809641",
        "MyNm": "윤텐",
        "Room": "KTAS",
        "Age": "33세"
      },
      {
        "BirthYmd": "20220815",
        "Sex": "M",
        "SchoolNm": "EM",
        "Id": "001104",
        "DeptCd": "112180",
        "UnitNo": "22809641",
        "MyNm": "김이박",
        "Room": "KTAS",
        "Age": "43세"
      },
      {
        "BirthYmd": "20220815",
        "Sex": "M",
        "SchoolNm": "EM",
        "Id": "001104",
        "DeptCd": "112180",
        "UnitNo": "22809641",
        "MyNm": "윤텐",
        "Age": "22세"
      },
      {
        "BirthYmd": "20220815",
        "Sex": "M",
        "SchoolNm": "EM",
        "Id": "001104",
        "DeptCd": "112180",
        "UnitNo": "22809641",
        "MyNm": "강이름",
        "Age": "22세"
      },
      {
        "BirthYmd": "20220815",
        "Sex": "M",
        "SchoolNm": "EM",
        "Id": "001104",
        "DeptCd": "112180",
        "UnitNo": "22809641",
        "MyNm": "강이름",
        "Age": "22세"
      }
    ];
    
    
    // isSameName 변수에 MyNm이 동일한 경우가 1개 이상일때 true값을 담기
    let compareData = '';
    for(let idx in data){
      data[idx].isSameName = false;
      compareData = data.filter(obj=> obj.MyNm == data[idx].MyNm)
      if(compareData.length > 1){  
      	data[idx].isSameName = true;
      }
      compareData= data.filter(obj=>obj.isSameName === true)
      console.log(data[idx].isSameName) // true, false, true, true, true
    }
    
    
      console.log(compareData) //  MyNm이 동일한 경우 새로운 배열로 리턴
      [{
      Age: "33세",
      BirthYmd: "20220915",
      Id: "001104",
      isSameName: true,
      MyNm: "윤텐",
      Room: "KTAS",
      SchoolNm: "EM",
      Sex: "M",
      UnitNo: "22809641"
    }, {
      Age: "22세",
      BirthYmd: "20220815",
      DeptCd: "112180",
      Id: "001104",
      isSameName: true,
      MyNm: "윤텐",
      SchoolNm: "EM",
      Sex: "M",
      UnitNo: "22809641"
    }, {
      Age: "22세",
      BirthYmd: "20220815",
      DeptCd: "112180",
      Id: "001104",
      isSameName: true,
      MyNm: "강이름",
      SchoolNm: "EM",
      Sex: "M",
      UnitNo: "22809641"
    }, {
      Age: "22세",
      BirthYmd: "20220815",
      DeptCd: "112180",
      Id: "001104",
      isSameName: true,
      MyNm: "강이름",
      SchoolNm: "EM",
      Sex: "M",
      UnitNo: "22809641"
    }]
    //

     

     

    반응형
    LIST

    댓글

Designed by Tistory.