>  기사  >  웹 프론트엔드  >  JavaScript 배열에서 중복 항목을 제거하는 12가지 방법에 대한 매우 포괄적인 요약

JavaScript 배열에서 중복 항목을 제거하는 12가지 방법에 대한 매우 포괄적인 요약

不言
不言원래의
2018-09-17 13:57:111369검색

이 기사는 JavaScript 배열 중복 제거를 위한 12가지 방법에 대한 포괄적인 요약을 제공합니다. 이는 특정 참조 가치가 있습니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

어레이 중복 제거는 일반적으로 인터뷰 중에 접하게 되며, 일반적으로 어레이 중복 제거 방법의 코드를 직접 작성해야 합니다. 질문이 있는 경우 어레이 중복 제거 방법은 무엇입니까? 그 중 10가지에 답할 수 있다면 면접관은 당신에게 깊은 인상을 받을 가능성이 높습니다.
실제 프로젝트에서 접하게 되는 어레이 중복 제거는 일반적으로 백그라운드에서 처리되며 프런트 엔드에서는 어레이 중복 제거를 처리하는 데 거의 사용되지 않습니다. 일상 프로젝트에서 사용할 확률은 상대적으로 낮지만, 인터뷰 중에 질문을 받을 경우를 대비해 알아야 합니다.

배열 중복 제거 방법

1. ES6 Set을 사용하여 중복 제거(ES6에서 가장 일반적으로 사용됨)

function unique (arr) {
  return Array.from(new Set(arr))
}
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, "NaN", 0, "a", {}, {}]

호환성에 관계없이 이 중복 제거 방법은 코드가 가장 적습니다. 이 메서드는 "{}" 빈 개체를 제거할 수 없습니다. 나중에 상위 메서드에서 "{}" 빈 개체를 추가하고 제거합니다.

두 번째, for를 사용하여 중첩한 다음 splice를 사용하여 중복 제거(ES5에서 가장 일반적으로 사용됨)

function unique(arr){            
        for(var i=0; ia4a21631e73f929d318c813b00124aa0= 1){
            if(arrry[index] === arrry[index-1]){
                arrry.splice(index,1);
            }
            loop(index - 1);    //递归loop,然后数组去重
        }
    }
    loop(len-1);
    return arrry;
}

10. Map 데이터 구조를 사용하여 중복을 제거하세요

function arrayNonRepeatfy(arr) {
  let map = new Map();
  let array = new Array();  // 数组用于返回结果
  for (let i = 0; i a3675a60392f234af1be95389d3377fb {
    if(s1 !== s2){
      array .push(s1);
    }
    return s2;
  })
  array .push(sortArr[sortArr.length - 1]);
  return array ;
}

Twelve.[...new Set(arr)]

[...new Set(arr)] 
//代码就是这么少----(其实,严格来说并不算是一种,相对于第一种方法来说只是简化了代码)

PS: 일부 기사에서는 foreach+indexOf 배열 중복 제거 방법을 언급했는데, 개인적으로는 모두 비슷하다고 생각합니다. , 그래서 기록되지 않았습니다.

위 내용은 JavaScript 배열에서 중복 항목을 제거하는 12가지 방법에 대한 매우 포괄적인 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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