好了,方法介绍结束,下面来个骚操作,需求:对象数组中去掉重复的对象。
对于一般数组来说常见的处理方式要么使用临时数组然后循环遍历,要么indexOf判断,高级一点使用ES6的新数据类型Set直接去重,但是对于对象数组本人亲自测试过,不好处理,还繁琐,下面直接上使用reduce方法的代码:

    var resources = [
            { name: "张三", age: "18" },
            { name: "张三", age: "19" },
            { name: "张三", age: "20" },
            { name: "李四", age: "19" },
            { name: "王五", age: "20" },
            { name: "赵六", age: "21" }
        ]
     var temp = {};
     resources = resources.reduce((prev, curv) => {
         // 如果临时对象中有这个名字,什么都不做
         if (temp[curv.name]) {
         }
         // 如果临时对象没有就把这个名字加进去,同时把当前的这个对象加入到prev中
         else {
             temp[curv.name] = true;
             prev.push(curv);
         }
         return prev
     }, []);
     console.log("结果", resources);

在这里插入图片描述
这里只需要注意initialValue得放一个空数组[],不然没法push,只要理解了reduce的处理过程,那么久很好理解它是怎么实现去重了,这里只根据名字去判断了,如果有其他的需求,仍然可以加判断以达到目的