수조 제거 흔한 방법

1775 단어

일반적인 방법


1. 대상의 키 값을 이용하여 중복할 수 없다.es6 방법: set 집합에서 중복값이 나타나지 않는 것을 이용하여 위수조를 수조로 변환한다.Filter 함수 활용
이어서 구체적인 실현을 이야기하다

1. 대상의 키 값을 이용하여 중복할 수 없다

function unique(arr) {
    var ret = [];
    var len = arr.length;
    var tmp = {};
    for(var i=0; i

그러나 대상 키는 문자열로만 사용할 수 있기 때문에 이런 중복 제거 방법에는 많은 한계가 있다.
  • 은식 형식이 문자열로 변환된 후의 값을 구분할 수 없습니다. 예를 들어 1과'1'
  • 복잡한 데이터 형식을 처리할 수 없습니다. 예를 들어 대상(대상이 키이기 때문에 [object Object])이 됩니다
  • 특수 데이터, 예를 들어'proto'는 끊긴다. tmp 대상의 proto 속성은 다시 쓸 수 없기 때문에 첫 번째 부분에 대해 대상의 키에 유형을 추가하거나 대상의value에 유형을 넣어서 해결할 수 있다는 의견이 있다.
  • function unique(arr) {
        var ret = [];
        var len = arr.length;
        var tmp = {};
        var tmpKey;
        for(var i=0; i

    이 방안도 세 번째 문제를 동시에 해결한다.
    두 번째 문제는 위에서 말한 바와 같이 대상에 대한 사용자 정의 비교 규칙을 허용하면 대상을 서열화한 후에 키로 사용할 수 있다.여기서는 간단하게 보기 위해 JSON을 사용합니다.stringify () 를 서열화합니다.
    function unique(arr) {
        var ret = [];
        var len = arr.length;
        var tmp = {};
        var tmpKey;
        for(var i=0; i

    2.es6 방법

    function uniqueArr(){
      let arr = [1,2,2,3,3,3];
      return Array.from(new Set(arr));
    }
    console.log(uniqueArr());//[1,2,3];
    

    3. Filter 함수 활용

    function uniqueArr(){
      let arr = [1,2,2,3,3,3];
      //filter
      return arr.filter(function(ele,index,array){
        return array.indexOf(ele) === index;
      })
    }
    console.log(uniqueArr());//[1,2,3];
    

    매일 조금씩 노력해 주셔서 감사합니다.

    좋은 웹페이지 즐겨찾기