- Js实现去重功能,我们需要用到Array.fifter()和Array.findIndex()方法。
Array.fifter():返回数组中满足条件的元素,没有返回null;
Array.findIndex():返回数组中满足条件的第一个元素下标,找到后不会继续执行;没有找到返回-1;
两个方法都不会改变原数组,数组为空时都不会执行。
思路:
1、通过findIndex()方法,找到并返回id相等的第一个元素的索引,设为 i ;
2、在fifter()方法中,返回条件为 i == index的元素(index为当前数组循环下标)。
举例:
/*
resultArr为去重后的数组;
arr为初始数组;
fifter()三个参数:item当前元素、index当前元素索引、selfArr检索的数组(这里代表arr).
*/
resultArr = arr.filter((item:any, index:any, selfArr:any) => {
return selfArr.findIndex((x:any) => x.id === item.id) === index;
});