메뉴 건너뛰기

조회 수 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. 이미지 마우스 드래그로 스크롤을 움직이는 소스

    Date2014.03.17 Views9362
    Read More
  2. 이미지나 태그정렬이 안맞을때 absmiddle

    Date2014.03.01 Views5238
    Read More
  3. 이미지에 마우스 올렸을때 확대 이미지 나오게 하기 (onmouseover

    Date2014.03.01 Views6923
    Read More
  4. 이미지클릭시 옆에 큰이미지나오기

    Date2014.03.17 Views5518
    Read More
  5. 이벤트 - 페이지 로드 후 이벤트 처리하기 ( window.onload )

    Date2015.06.19 Views10871
    Read More
  6. 이전, 위로 이동

    Date2016.12.23 Views5740
    Read More
  7. 이클립스 실행할때 자신이 원하는 JDK 지정하는 방법

    Date2016.09.11 Views5439
    Read More
  8. 입력된 글씨수 제어

    Date2014.03.01 Views6700
    Read More
  9. 입력된 폼의 내용 똑같이 복사

    Date2014.03.01 Views6892
    Read More
  10. 자바 스크립트 confirm()함수에서 (확인,취소) -> (예,아니오)

    Date2014.03.01 Views10214
    Read More
  11. 자바스크립트 API 문서

    Date2015.06.19 Views9087
    Read More
  12. 자바스크립트 urlencode(), urldecode(), rawurlencode(), rawurldecode()

    Date2018.10.27 Views1913
    Read More
  13. 자바스크립트 개체 복사

    Date2014.02.27 Views6573
    Read More
  14. 자바스크립트 모음

    Date2016.12.22 Views5778
    Read More
  15. 자바스크립트 및 CSS를 이용한 숫자만 입력받기

    Date2016.12.22 Views6321
    Read More
  16. 자바스크립트 배열 중복값 다루기

    Date2018.10.27 Views3898
    Read More
  17. 자바스크립트 변수,함수,객체의 표현

    Date2016.12.22 Views5369
    Read More
  18. 자바스크립트 소수점 자리수 계산

    Date2014.03.01 Views6897
    Read More
  19. 자바스크립트 실행 시간 측정

    Date2016.12.22 Views8930
    Read More
  20. 자바스크립트 아이디 기억하기 기능 구현 (쿠키저장)

    Date2015.06.19 Views10924
    Read More
Board Pagination Prev 1 ... 4 5 6 7 8 9 10 11 12 13 Next
/ 13

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

© k2s0o1d4e0s2i1g5n. All Rights Reserved