HUH函数
对于动态键,创建一个函数,该函数将表示键的数组和数组字符串作为输入。创建另一个辅助方法来比较两个对象的给定键。使用filter()对象的数组,然后使用对every()当前索引之前元件不等于关于给定键的当前对象。let arr = [{a:1,b:2,c:4}, {a:3,b:4,c:7}, {a:7,b:10,c:10}, {a:1, b:2,c:4}];function comp(obj1,obj2,keys){ return keys.every(k => obj1[k] === obj2[k]);}function getUnique(arr,keys){ return arr.filter((x,i) => arr.slice(0,i).every(a => !comp(a,x,keys)))}console.log(getUnique(arr,['a','b']))
繁花如伊
您可以reduce使用 aMap作为累加器的数组。使用a和b属性的组合作为键,以便删除重复项。然后使用Map#values获取输出const input = [{a:1,b:2,c:4}, {a:3,b:4,c:7}, {a:7,b:10,c:10}, {a:1, b:2,c:4}], mapped = input.reduce((map, o) => map.set(o.a + "_" + o.b, o), new Map), output = Array.from(mapped.values());console.log(output)