>웹 프론트엔드 >JS 튜토리얼 >자바스크립트 배열에서 중복을 제거하는 방법

자바스크립트 배열에서 중복을 제거하는 방법

青灯夜游
青灯夜游원래의
2021-09-07 17:59:392297검색

방법: 1. "[...new Set(arr)]" 문을 사용합니다. 2. "Array.from(new Set(arr))" 문을 사용합니다. 3. 필터 및 indexOf 함수를 사용합니다. . double을 사용한다. for 루프는 값이 중복되었는지 확인하고, 중복된 값이 있으면 push()를 사용하여 삭제한다.

자바스크립트 배열에서 중복을 제거하는 방법

이 튜토리얼의 운영 환경: Windows 7 시스템, JavaScript 버전 1.8.5, Dell G3 컴퓨터.

방법 1: […new Set(arr)]

const arr = [1, 2, 3, 2, 3];
[...new Set(arr)]; // [1, 2, 3]

방법 2: Array.from(new Set(arr))

const arr = [1, 2, 3, 2, 3];
Array.from(new Set(arr)); // [1, 2, 3]

Set의 요소는 고유하므로 원래 값인지 여부 또는 개체 참조이므로 배열을 Set 개체로 변환하여 중복 제거를 수행할 수 있습니다. Array.from 메서드는 Set 개체를 배열로 변환할 수 있습니다.

방법 3: 필터+ indexOf 사용

function unique(arr) {
  return arr.filter(function(item, index, arr) {
    //当前元素,在原始数组中的第一个索引==当前索引值,否则返回当前元素
    return arr.indexOf(item, 0) === index;
  });
}
var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];
console.log(unique(arr))
//[1, "true", true, 15, false, undefined, null, "NaN", 0, "a", {…}, {…}]

방법 4: 이중 for 루프

가장 이해하기 쉬운 방법은 외부 루프는 요소를 순회하고 내부 루프는 중복이 있는지 확인합니다

중복 값, push() 또는 splice()를 사용할 수 있습니다

function distinct(a, b) {
    let arr = a.concat(b);
    for (let i=0, len=arr.length; i<len; i++) {
        for (let j=i+1; j<len; j++) {
            if (arr[i] == arr[j]) {
                arr.splice(j, 1);
                // splice 会改变数组长度,所以要将数组长度 len 和下标 j 减一
                len--;
                j--;
            }
        }
    }
    return arr
}

하지만 이 방법은 메모리를 많이 차지하고 효율성이 가장 낮습니다

자바스크립트 배열에서 중복을 제거하는 방법

방법 5: for...of + include()

이중 for 루프의 업그레이드 버전입니다. for...of 문을 사용하여 외부 레이어의 for 루프를 교체하고 내부 루프를 include()로 변경합니다.

먼저 include()가 false를 반환할 때 빈 배열을 만듭니다. , 빈 배열에 push 요소를 추가하세요

마찬가지로 indexOf()를 사용하여 include()

function distinct(a, b) {
    let arr = a.concat(b)
    let result = []
    for (let i of arr) {
        !result.includes(i) && result.push(i)
    }
    return result
}

자바스크립트 배열에서 중복을 제거하는 방법를 대체할 수도 있습니다. 【추천 학습:

javascript 고급 튜토리얼

위 내용은 자바스크립트 배열에서 중복을 제거하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.