본문 바로가기
프로그래밍/jQuery

jQuery.unique(), DOM 요소 배열에서 중복된 노드를 제거

by zoo10 2012. 7. 2.

jQuery.unique()

원문 링크 http://api.jquery.com/jQuery.unique/

jQuery.unique( array )Returns : Array

개요 : DOM 요소 배열에서 중복된 노드를 제거하고 정렬합니다. 이 함수는 오로지 DOM 요소 배열에만 사용할 수 있습니다.

  • jQuery.unique( array )
  • array DOM elements 배열.

$.unique() 함수는 오브젝트 배열을 정렬하고 중복된 노드를 제거합니다. 이 함수는 DOM 요소들로 구성된 배열에만 사용할 수 있으며 주로 jQuery 내부 작업용으로 사용합니다.

jQuery 1.4 부터 document 순서에 따라 결과가 정렬됩니다.

예 제  
중복되는 div 를 추출해서 제거합니다.

<!DOCTYPE html>
<html>
<head>
  <style>
  div { color:blue; }
  </style>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
  <div>There are 6 divs in this document.</div>
  <div></div>
  <div class="dup"></div>
  <div class="dup"></div>

  <div class="dup"></div>
  <div></div>
<script>

    var divs = $("div").get(); // unique() must take a native array

    // add 3 elements of class dup too (they are divs)
    divs = divs.concat($(".dup").get());
    $("div:eq(1)").text("Pre-unique there are " + divs.length + " elements.");

    divs = jQuery.unique(divs);
    $("div:eq(2)").text("Post-unique there are " + divs.length + " elements.")
                  .css("color", "red");

</script>

</body>
</html>

미리보기

 

정확한 표현은 중복되는 노드를 제거한다고 하는게 맞겠네요. 일반적인 string, number 배열에는 사용못합니다. 명심하세요.

※ 본 예제는 http://www.jquery.com 에 있는 내용임을 밝힙니다.