我有一个没有空格的字符串,带有','和重复的条目。为什么jQuery不删除它?
var arr = $.unique(data.split(','));
答案 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;
}