JavaScript 배열에서 중복 항목을 제거하는 7가지 방법

다음은 어레이 중복 제거를 위한 몇 가지 방법입니다.

어레이 중복 제거 방법 1: Set 컬렉션을 사용하여 중복 제거

//方法一:
function fun(arr){
    let set = new Set(arr);
    arr=Array.from(set);
    return arr;
}

배열 중복 제거 방법 2: 새 배열을 만들고 새 배열에 중복되지 않은 배열 요소를 추가한 후 새 배열을 반환합니다. 

//方式二
    function fun(arr) {
        let arr1 = [];
        for (let i = 0; i < arr.length; i++) {
            if (arr1.indexOf(arr[i]) > -1) {
                continue;
            } else {
                arr1.push(arr[i]);
            }
        }
        return arr1;
    }

어레이 중복 제거 방법 3: 어레이를 탐색하여 중복 요소를 확인하고 삭제합니다. 

   //方式三:
    function fun(arr){
    	for(let i = 0;i<arr.length;i++){
    		for(let j = i+1;j<arr.length;){
    			if(arr[i]==arr[j]){
    				arr.splice(j,1)
    			}else{
    				j++
    			}
    		}
    	}
    	return arr;
    }

어레이 중복 제거 방법 4: 어레이 필터 방법을 사용하여 한 번만 나타나는 어레이 요소를 필터링합니다. 

//方法四:
    function fun(arr){
    	return arr.filter((item,index)=>arr.indexOf(item)==index);
    }

배열 중복 제거 방법 5: 해당 요소가 처음 나타나는 첨자와 마지막으로 나타나는 요소의 첨자를 비교하여 다음 표와 같지 않으면 중복을 의미하고 하나를 삭제한 후 ++

//    方法五:
    function fun(arr){
    	for(let i=0;i<arr.length;){
    		if(arr.indexOf(arr[i])!=arr.lastIndexOf(arr[i])){
    			arr.splice(i,1)
    		}else{
    			i++
    		}
    	}
    	return arr;
    }

배열 중복 제거 방법 6: 먼저 sort() 메서드를 사용하여 배열을 정렬한 후 인접한 요소를 순서대로 비교하여 동일한지 확인하고 동일하면 다음 요소를 삭제합니다.

function fun(arr){
    arr.sort();
    for(let i = 0; i < arr.length-1; i++) {
      if(arr[i] === arr[i+1]) {
        arr.splice(i+1, 1);
        i--;
      }
    }
    return arr;
}

 

배열 중복 제거 방법 7: 감소() 메서드를 사용하여 배열을 순회하고 배열 요소를 새 배열에 저장합니다. 요소가 새 배열에 이미 존재하는 경우 다시 저장되지 않습니다.

function fun(arr) {
  return arr.reduce((prev, cur) => {
    if(!prev.includes(cur)) {
      prev.push(cur);
    }
    return prev;
  }, []);
}
 

확장된 어레이 접속 방법: 

확장된 배열 축소 방법:

배열의 Reduce() 메서드는 배열의 모든 요소를 ​​누적하는 데 사용되는 고차 함수입니다. 콜백 함수와 초기값이라는 두 가지 매개변수를 받습니다. 콜백 함수에는 4개의 매개변수가 포함되어 있습니다.

  • Accumulator: 마지막 콜백 함수 실행 결과(즉, 누적된 값)를 저장하는 Accumulator.
  • currentValue: 현재 요소, 즉 현재 배열에서 처리되고 있는 요소입니다.
  • currentIndex: 현재 요소의 인덱스입니다.
  • 배열: 현재 배열.

Reduce() 메서드는 배열의 각 요소에 대해 순차적으로 콜백 함수를 호출하고 콜백 함수의 반환 값을 누산기에 추가한 후 최종 결과를 반환합니다.

다음은 Reduce() 메서드의 구문입니다.

array.reduce(callback[, initialValue]);

그 중 callback은 필수이며 콜백 함수이고,initialValue는 선택사항이며 초기값이다.

다음은 배열의 모든 요소의 합을 계산하는 예입니다.

let arr = [1, 2, 3, 4, 5];
let sum = arr.reduce((accumulator, currentValue) => accumulator + currentValue, 0);
console.log(sum); // 15

        위의 예에서 초기값은 0이고 콜백 함수는 누산기와 현재 요소를 추가하고 결과는 누산기에 할당됩니다. 따라서 최종 결과는 15입니다.

        배열이 비어 있고 초기 값이 제공되지 않으면 Reduce() 메서드는 TypeError 예외를 발생시킵니다. 배열에 요소가 하나만 있는 경우(초기 값 제공 여부에 관계없이) 해당 요소가 반환 값입니다. 배열이 비어 있지만 초기 값이 제공된 경우 초기 값은 반환 값입니다.


위에는 제가 정리한 배열 중복 제거 방법 7가지가 있으며, 다른 방법이 있으면 토론해 주시기 바랍니다.

추천

출처blog.csdn.net/weixin_40381947/article/details/131389669