在jQuery 1.4.2中做$ .unique()函数是什么?

时间:2010-08-09 11:09:16

标签: jquery

我有一个没有空格的字符串,带有','和重复的条目。为什么jQuery不删除它?
var arr = $.unique(data.split(','));

3 个答案:

答案 0 :(得分:2)

我认为你没有使用正确的功能。

来自jQuery documentation on $.unique:

  

请注意,这仅适用于DOM元素的数组,而不适用于字符串或数字。

This SO question包含一些通用array_unique解决方案的方法。

答案 1 :(得分:1)

$.unique()无法保证能够处理字符串数组,它具有特定目的,check the API

  

此函数仅适用于DOM元素的纯JavaScript数组,主要由jQuery内部使用。

答案 2 :(得分:0)

控制台说:

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

但是它不可靠,因为它意味着与DOM节点一起使用。它使用的排序功能用于比较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;
}