jquery 去重
jQuery 数组去重方法
使用 jQuery 或纯 JavaScript 对数组进行去重有多种方法。以下是几种常见的方式:
使用 $.unique()
jQuery 提供了 $.unique() 方法,但需要注意它仅适用于 DOM 元素数组的去重,不适用于普通数组。
var arr = [1, 2, 2, 3, 4, 4, 5];
var uniqueArr = $.unique(arr); // 不适用于普通数组
使用纯 JavaScript 方法
对于普通数组,可以使用以下方法:
方法 1:使用 Set
var arr = [1, 2, 2, 3, 4, 4, 5];
var uniqueArr = [...new Set(arr)];
console.log(uniqueArr); // [1, 2, 3, 4, 5]
方法 2:使用 filter + indexOf
var arr = [1, 2, 2, 3, 4, 4, 5];
var uniqueArr = arr.filter(function(item, index) {
return arr.indexOf(item) === index;
});
console.log(uniqueArr); // [1, 2, 3, 4, 5]
方法 3:使用 reduce
var arr = [1, 2, 2, 3, 4, 4, 5];
var uniqueArr = arr.reduce(function(acc, curr) {
if (!acc.includes(curr)) {
acc.push(curr);
}
return acc;
}, []);
console.log(uniqueArr); // [1, 2, 3, 4, 5]
使用 jQuery 的 $.grep()
虽然不是直接去重,但可以结合其他方法实现:

var arr = [1, 2, 2, 3, 4, 4, 5];
var uniqueArr = [];
$.each(arr, function(i, item) {
if ($.inArray(item, uniqueArr) === -1) {
uniqueArr.push(item);
}
});
console.log(uniqueArr); // [1, 2, 3, 4, 5]
注意事项
$.unique()仅适用于 DOM 元素数组,不推荐用于普通数组。- 现代 JavaScript 的
Set方法是最简洁高效的去重方式。 - 如果需要兼容旧浏览器,可以使用
filter+indexOf或reduce方法。






