js 数组去重之高阶方法-.reduce

js 数组去重之高阶方法-.reduce

1.业务需求:
  • vue项目需要对数组(子项是对象)进行去重。
2.解决方案:
  • 使用.reduce方法对复杂结构的数组(子项为对象)进行去重:

  •    	 // 去重函数(list:数组) 
          dropReduce(list) {
            // 定义一个空对象,利用对象的键的唯一进行去重
            let obj = {}
            // 去重(cur:init默认list,next:数组子项,index:表示当前正在处理的数组元素的索引,arr:表示原数组)
            return list.reduce((cur,next,index,arr) => {
              obj[next.sysResourcesId]?"":obj[next.sysResourcesId]=true && cur.push(next)
              return cur
            }, [])
          },
    
  • 使用.reduce方法对简单结构的数组(子项为数字)进行去重:

  • 	   let arr = [1,2,3,4,5,1,2,1];
            // indexOf()判断数组第一次出现的下标
            var newArr = arr.reduce((cur, next)=> {
                cur.indexOf(next) === -1 && cur.push(next);
                return cur;
            },[]);
    

猜你喜欢

转载自blog.csdn.net/qq_34917408/article/details/107493740
今日推荐