메뉴 건너뛰기

조회 수 3912 추천 수 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. HTML 화면을 PDF로 출력

    Date2019.01.08 Views5248
    Read More
  2. == / === / != / !== 차이

    Date2018.11.07 Views1468
    Read More
  3. 오늘 날짜 구하기

    Date2018.11.07 Views1445
    Read More
  4. jQuery 엘리먼트 선택

    Date2018.10.27 Views1754
    Read More
  5. 자바스크립트 urlencode(), urldecode(), rawurlencode(), rawurldecode()

    Date2018.10.27 Views1933
    Read More
  6. 자바스크립트 배열 중복값 다루기

    Date2018.10.27 Views3912
    Read More
  7. JavaScript 출생년도에 따른 나이 계산 자바스크립트

    Date2018.09.28 Views3272
    Read More
  8. 엔터키 / enter key submit form

    Date2018.09.28 Views1552
    Read More
  9. 팝업창 차단 "허용 메시지"

    Date2018.09.28 Views1751
    Read More
  10. 테이블에서 해당 열의 인덱스 값 얻는 방법

    Date2018.08.29 Views2814
    Read More
  11. key pressing 누르거나 클릭중인 이벤트 예제

    Date2018.08.29 Views1641
    Read More
  12. 유용한 스크립트 모음

    Date2018.07.24 Views2325
    Read More
  13. cross site scripting을 막기위한...javascript

    Date2018.07.24 Views1615
    Read More
  14. 다음 우편번호(주소) api 예시

    Date2018.07.04 Views4926
    Read More
  15. 스마트에디터(SmartEditor)에서 textarea 유효성 체크하기

    Date2018.07.04 Views4030
    Read More
  16. 반복문 사용할때 태그 식별하기 data-item

    Date2018.07.04 Views1866
    Read More
  17. SelectBox에서 선택된 항목의 텍스트, 값 가져오기 선택 옵션 넣기.

    Date2018.07.04 Views4029
    Read More
  18. 체크박스(CheckBox) 전체 선택, 전체 해제 checked

    Date2018.07.04 Views2951
    Read More
  19. 스마트 에디터 (네이버 에디터) 에디터 내에서 이미지 크기 줄이기.(리사이징)

    Date2018.07.04 Views2730
    Read More
  20. Javascript selectbox selected 컨트롤

    Date2018.06.21 Views10071
    Read More
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 13 Next
/ 13

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

© k2s0o1d4e0s2i1g5n. All Rights Reserved