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