1. 단일 배열 중복 제거 (Single Array)
// 단일 오브젝트 배열 중복 제거
function getUniqueSnglObjectArray(arr, key) {
var resultArr = [];
for (var i = 0; i < arr.length; i++) {
if (resultArr.length == 0) {
resultArr.push(arr[i]);
} else {
var duplicatesFlag = true;
for (var j = 0; j < resultArr.length; j++) {
if (resultArr[j][key] == arr[i][key]) {
duplicatesFlag = false;
break;
}
}
if (duplicatesFlag) {
resultArr.push(arr[i]);
}
}
}
return resultArr;
}
2. 다중 배열 중복 제거 (Array to Array)
/**
* 중복 제거 함수
* @param array1 : 비교 배열1
* @param array2 : 메인 배열2
* @param key1 : 비교 key1
* @param key2 : 메인 key2
* @return : resultData(결과값), duplData(중복값)
*/
function getUniqueObjectArray(array1, array2, key1, key2){
// 임시 배열
var tempArray = new Array();
var tempDuplArray = new Array();
// 결과 배열
var resultArray = new Array();
var duplArray = new Array();
var result = new Object();
for(var i=0; i<array1.length; i++){
tempArray.push(array1[i]);
}
for(var k=0; k<tempArray.length; k++){
if(array2.length>0){
for(var j=0; j<array2.length; j++){
if(tempArray[k] && tempArray[k][key1] == array2[j][key2]){
// 중복 제거값
tempArray.splice(k, 1);
// 중복값 세팅
tempDuplArray.push(array2[j]);
k--;
}
}
duplArray = tempDuplArray;
// 최종 결과값 할당
resultArray = tempArray;
} else {
if(tempArray.length>0){
resultArray.push(tempArray[k])
}
}
}
result = {
resultData : resultArray
, duplData : duplArray
}
return result;
}
Comment