📜  jQuery |唯一()方法(1)

📅  最后修改于: 2023-12-03 15:32:12.685000             🧑  作者: Mango

jQuery 唯一()方法

简介

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]
DOM 元素数组去重

在 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 来去重,在处理大数组时可能会极大地消耗性能,所以在处理大数组时需要谨慎使用。