2010-08-09 2 views
-1

문자열이없고 공백이 있고 ','및 중복 항목이 있습니다. jQuery가 이것을 제거하지 않는 이유는 무엇입니까?
var arr = $.unique(data.split(','));

+0

전체 코드 샘플을 제공하고 전문적인 언어를 사용하십시오. –

+0

Lol? 나는 그것을 게시했다. var 데이터 = "omg, lol, omg"와 같은 문자열이 있습니다. – UnstableFractal

답변

2

나는이 문제에 대해 올바른 기능을 사용하지 않는다고 생각합니다. 이것은 단지 DOM 요소가 아닌 문자열이나 숫자의 배열에서 작동하는 jQuery documentation on $.unique:

주에서

.

This SO question에는 일반적인 array_unique 솔루션에 대한 몇 가지 접근법이 포함되어 있습니다.

0

콘솔은 말한다 :이 DOM 노드와 사용하기위한 것입니다 있기 때문에 신뢰할 그러나

> var data = "omg,lol,omg"; 
> $.unique(data.split(",")) 
["lol", "omg"] 

합니다. 사용하는 정렬 함수는 DOM 노드를 비교하는 데 사용되며 브라우저에 따라 다릅니다. 문자열 배열을 중복 제거하려면 jQuery.unique에서 사용되는 알고리즘을 다시 사용할 수 있습니다. 배열을 정렬하고 연속으로 일치하는 요소를 모두 제거합니다.

function removeDuplicates(array) { 
    array.sort(); 
    for(var i = 1; i < array.length; i++) { 
     if(array[i] == array[i-1]) { 
      array.splice(i--, 1); 
     } 
    } 
    return array; 
} 
1

$.unique()은 문자열의 배열에서 작동하도록 보장되지 않습니다, 그것은 특정한 목적, check the API 있습니다

이 기능은 DOM 요소의 일반 자바 스크립트 배열에서 작동을하고, 주로 내부적으로 사용됩니다 jQuery.

+0

자신의 함수를 작성하는 대신 중복을 제거 할 수있는 방법이 있습니까 ?? – UnstableFractal

+0

@smsteel - jQuery에는이 기능이 내장되어 있지 않습니다. 그게 목적이 아니지만 기능은 쓰기가 어렵지 않습니다. Pekka가 그의 대답에 링크되어 있습니다. –

관련 문제