메뉴 건너뛰기

조회 수 3898 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

다량의 배열 요소를 다룰때 중복데이터에 대한 처리는 생각보다 만만치가 않다.

이러한 중복값 처리에 필요한 요구가 다양하게 있겠지만, 가장 흔히 요구되는 기능 몇가지를 작성 하였다.


<script type="text/javascript">

    // 테스트용 배열 선언

    var arr1 = new Array();

    var arr2 = new Array();

    var arr3 = new Array();


    // 배열요소의 중복제거 및 오름차순 정렬(속성형)

    Array.prototype.unique = function() {

        var a = {};

        for (var i = 0; i < this.length; i++) {

            if (typeof a[this[i]] == 'undefined') {

                a[this[i]] = 1;

            }

        }

        this.length = 0;

        for (var i in a) {

            this[this.length] = i;

        }

        return this;

    };

    arr1 = [3,3,4,4,5,6,6,7,7,7,8,9,9,9,2,1,1,0]; //무작위값 할당

    alert(arr1.unique()); //결과: 0,1,2,3,4,5,6,7,8,9



    // 배열요소의 중복제거 및 오름차순 정렬(함수형)

    function uniqueArray(arr) {

        var a = {};

        for (var i = 0; i < arr.length; i++) {

            if (typeof a[arr[i]] == 'undefined') {

                a[arr[i]] = 1;

            }

        }

        arr.length = 0;

        for (var i in a) {

            arr[arr.length] = i;

        }

        return arr;

    }

    alert(uniqueArray([1,4,2,2,3,4,5,5,5,7,6,6,9,0,8,8]))//결과: 0,1,2,3,4,5,6,7,8,9



    // 배열요소의 중복만 제거해서 배열로 반환

    function uniqArr(arr) {

        var chk = [];

        for (var i = 0; i < arr.length; i++) {

            if (chk.length == 0) {

                chk.push(arr[i]);

            } else {

                var flg = true;

                for (var j = 0; j < chk.length; j++) {

                    if (chk[j] == arr[i]) {

                        flg = false;

                        break;

                    }

                }

                if (flg) {

                    chk.push(arr[i]);

                }

            }

        }

        return chk;

    }

    alert(uniqArr([9,8,8,1,1,2,2,3,4,5,5,6,7,0])); //결과: 9,8,1,2,3,4,5,6,7,0



    // 2개 이상의 배열요소에서 중복이 아닌값만 배열로 반환 array_diff(arr1, arr2, ...)

    function array_diff() {

        var args = array_diff.arguments;

        var T = args[0], arg, k, R = '', out = [];

        var d = array_diff.delim;

        for (k = 1; arg = args[k++];)

            R += arg.join(d) + d;

        for (k = 0; k < T.length; k++)

            if (R.indexOf(T[k] + d) < 0)

                out[out.length] = T[k];

        return out;

    }

    array_diff.delim = '*'; //임시 구분자 지정

    arr1 = [0,1,2,3,4,5,6,7,8,9];

    arr2 = [2,3,5];

    arr3 = [3,8,9];

    alert(array_diff(arr1, arr2, arr3)); //결과: 0,1,4,6,7



    // 응용: 새 배열을 랜덤 정렬로 생성하고 원래 배열에 연결후 중복제거
    {
        arr1 = [1,4,2,0,3,1,2,0,0,1,7,5];
        arr2 = [];

        for (var i = 0; i < 12; i++) {
            arr2[i] = i + 1;
        }
        arr2.sort(function() { return Math.random() - Math.random(); }); //랜덤정렬
        arr1 = arr1.concat(arr2); //배열 연결

        arr1 = arr1.unique(); //중복제거 및 오름차순 정렬
        alert(arr1); //결과확인
    }
</script>

  1. No Image 27Feb
    by
    2014/02/27 Views 5441 

    적용이 간편한 [글목록 인쇄] 등 특정 영역 인쇄하기 팁

  2. No Image 26Mar
    by
    2021/03/26 Views 203 

    자주쓰는 것들

  3. No Image 25Mar
    by
    2021/03/25 Views 321 

    자바스크립트에서 이벤트 중단 하는 방법

  4. 자바스크립트로 네트워크 연결 확인하기 (Navigator onLine Property)

  5. No Image 01Mar
    by
    2014/03/01 Views 5434 

    자바스크립트, javascript, 간단한 파일 확장자 검사후 retur

  6. No Image 06Apr
    by
    2015/04/06 Views 5596 

    자바스크립트 이벤트 목록입니다. ( javascript event )

  7. No Image 02Feb
    by
    2015/02/02 Views 10180 

    자바스크립트 영문입력, 숫자만입력, 한글만 입력, 붙여넣기 방지

  8. 자바스크립트 아이디 기억하기 기능 구현 (쿠키저장)

  9. No Image 22Dec
    by
    2016/12/22 Views 8930 

    자바스크립트 실행 시간 측정

  10. No Image 01Mar
    by
    2014/03/01 Views 6897 

    자바스크립트 소수점 자리수 계산

  11. No Image 22Dec
    by
    2016/12/22 Views 5369 

    자바스크립트 변수,함수,객체의 표현

  12. No Image 27Oct
    by 조쉬
    2018/10/27 Views 3898 

    자바스크립트 배열 중복값 다루기

  13. No Image 22Dec
    by
    2016/12/22 Views 6321 

    자바스크립트 및 CSS를 이용한 숫자만 입력받기

  14. No Image 22Dec
    by
    2016/12/22 Views 5778 

    자바스크립트 모음

  15. No Image 27Feb
    by
    2014/02/27 Views 6573 

    자바스크립트 개체 복사

  16. No Image 27Oct
    by
    2018/10/27 Views 1913 

    자바스크립트 urlencode(), urldecode(), rawurlencode(), rawurldecode()

  17. No Image 19Jun
    by
    2015/06/19 Views 9087 

    자바스크립트 API 문서

  18. 자바 스크립트 confirm()함수에서 (확인,취소) -> (예,아니오)

  19. 입력된 폼의 내용 똑같이 복사

  20. 입력된 글씨수 제어

Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 13 Next
/ 13

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved