📅  最后修改于: 2023-12-03 15:32:12.685000             🧑  作者: Mango
jQuery.unique()
是 jQuery 的一个方法,用于返回一个去重后的数组。
jQuery.unique(array)
array
是要去重的数组。
返回去重后的数组。
可以使用 jQuery.unique()
方法对原生数组进行去重。
let arr = [1, 1, 2, 3, 3, 4, 5, 5];
let uniqueArr = jQuery.unique(arr);
console.log(uniqueArr); // 输出 [1, 2, 3, 4, 5]
在 jQuery 中,元素集合是一个伪数组,可以使用 jQuery.makeArray()
方法把元素集合转化成真正的数组,然后再使用 jQuery.unique()
方法进行去重。
let $divs = $('div');
let divsArr = jQuery.makeArray($divs);
let uniqueDivsArr = jQuery.unique(divsArr);
console.log(uniqueDivsArr); // 输出去重后的 DOM 元素数组
对于一个由对象构成的数组,我们可以将每个对象的某个属性值作为唯一标识,然后根据这个唯一标识进行去重。
let arr = [
{ id: 1, name: 'a' },
{ id: 2, name: 'b' },
{ id: 1, name: 'c' },
{ id: 3, name: 'd' },
{ id: 2, name: 'e' }
];
let uniqueArr = jQuery.unique(arr.map(obj => obj.id));
console.log(uniqueArr); // 输出 [1, 2, 3]
// 获取去重后的对象数组
let uniqueObjArr = uniqueArr.map(id => {
return arr.find(obj => obj.id === id);
});
console.log(uniqueObjArr); // 输出去重后的对象数组
Array.prototype.filter()
和 Array.prototype.findIndex()
进行,它们比 jQuery.unique()
要快。jQuery.unique()
内部使用了 ES6 新特性 Set
来去重,在处理大数组时可能会极大地消耗性能,所以在处理大数组时需要谨慎使用。