수조의 무게를 제거하는 다섯 가지 방법

1869 단어
방법 1 - 새 그룹을 만들고 원수 그룹과 새 그룹의 모든 항목을 비교합니다.
Array.prototype.unique1 = function () {
    var arr = [];
    for (var i = 0; i < this.length; i++) {
        var flag = true;
        for (var j = 0; j < arr.length; j++) {
            if (this[i] == arr[j]) {
                flag = false;
            }
        }
        if (flag) {
            arr.push(this[i]);
        }
    }
    return arr;
}

방법 2 - 원수 그룹의 첫 번째 항목을 잘라내고 나머지 그룹의 모든 항목과 비교
Array.prototype.unique2 = function () {
    var arr = [];
    do {
        var a = this.splice(0, 1)[0];
        var flag = true;
        for (var i = 0; i < this.length; i++) {
            if (a == this[i]) {
                flag = false;
            }
        }
        if (flag) {
            arr.push(a);
        }
    } while (this.length > 0);
    return arr;
}

방법 3 - 새 그룹, 원수 그룹을 훑어보고, 새 그룹에서 색인을 조회합니다.
Array.prototype.unique3 = function () {
    var arr = [];
    for (var i = 0; i < this.length; i++) {
        if (arr.indexOf(this[i]) == -1) {
            arr.push(this[i]);
        }
    }
    return arr;
}

메서드 4 - 새 객체, 객체가 배열 속성을 가지고 있는지 여부를 판단합니다.
Array.prototype.unique4 = function(){
    var arr = [];
    var obj = {};
    for (var i = 0; i < this.length; i++) {
        if(!obj[this[i]]){
            arr.push(this[i])
        }
        obj[this[i]] = 1;
    }
    return arr;
}

방법 5 - 인코딩 정렬, 원수 그룹 인접 비교
Array.prototype.unique5 = function(){
    this.sort();
    var arr = [];
    for (var i = 0; i < this.length; i++) {
        if(this[i] != this[i + 1] ){
            arr.push(this[i]);
        }
    }
    return arr;
}

ES6 새 구문 -
Array.prototype.unique6 = function(){
    return Array.from(new Set(this));
}

좋은 웹페이지 즐겨찾기