JavaScript

[JS] 배열에서 동명이인 찾기. Array.filter()

뷰엉 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