我在Javascript中有这个对象。
[{"col1": 1, "col2": 25},{"col1": 1, "col2": 25},{"col1": 3, "col2": 30}]
如何获得重复的记录以获得此结果?
[{"col1": 1, "col2": 25},{"col1": 3, "col2": 30}]
我已经尝试了下一种逻辑,但是不起作用:
[...new Set(myData)]
答案 0 :(得分:1)
.innerRadius(function (d) {
if (d.data.size == 144) {
return Math.max(0, y(1))
} else {
return Math.max(0, y(d.y0))
}
})
.outerRadius(function (d) {
if (d.data.size == 144) {
return Math.max(0, y(0.373))
} else {
return Math.max(0, y(d.y1))
}
答案 1 :(得分:1)
我最近在另一个答案上读了这篇文章,我很喜欢它,它使用了filter()
的可选参数,该参数在过滤器函数内作为this
传递。
const input = [
{"col1": 1, "col2": 25},
{"col1": 1, "col2": 25},
{"col1": 3, "col2": 30}
];
let res = input.filter(function({col1, col2})
{
return !this.has(`${col1}-${col2}`) && this.add(`${col1}-${col2}`)
}, new Set());
console.log(res);
答案 2 :(得分:1)
This answer显示了带有filter
的简单Set
操作:
const data = [{"col1": 1, "col2": 25},{"col1": 1, "col2": 25},{"col1": 3, "col2": 30}];
const unique = data.filter(function({ col1, col2 }) { return !this.has(`${col1}-${col2}`) && this.add(`${col1}-${col2}`)}, new Set);
console.log(unique);