1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
| var array = [ { id: 1, name: "张三"}, { id: 2, name: "李四"}, { id: 3, name: "张龙"}, { id: 4, name: "赵虎"}, { id: 5, name: "王朝"}, { id: 1, name: "刘金刚"}, { id: 6, name: "马汉"}, ] var obj = {}; /* * 方法一 reduce函数 * 按照id 相同进行去重 */ array = array.reduce(function (item, next) { obj[next.id] ? '' : obj[next.id] = true && item.push(next); return item; }, []); console.log(array) // 去重后数组 /* * 方法二 es6写法 * 按照传入属性 进行去重 */ var array2 = [ { id: 1, name: "张三"}, { id: 2, name: "李四"}, { id: 3, name: "张龙"}, { id: 4, name: "赵虎"}, { id: 5, name: "王朝"}, { id: 1, name: "刘金刚"}, { id: 6, name: "马汉"}, ] /** * arr:要去重的数组 * attr: 去重根据的属性 */ function unique(arr, attr) { const res = new Map(); return arr.filter((item) => { var attrItem = item[attr] return !res.has(attrItem) && res.set(attrItem, 1) }) } console.log(unique(array2, "id")) // 去重后数组
|