如何在 d3.js 中保留具有唯一 ID 的行

How to keep rows with unique IDs once in d3.js

我有一个 JSON 数据集,如下所示

var data= 
[
{"id":10,"marks":20},
{"id":20,"marks":30},
{"id":10,"marks":40},
{"id":10,"marks":60},
{"id":10,"marks":70}
]

我想只保留具有唯一 ID 的行。这意味着我应该只有以下行的数据

[
{"id":10,"marks":20},
{"id":20,"marks":30}
]

实际上文件的大小很大。我想显示唯一 ID 的平均分数。为了平均我使用不同的代码。所以我在读取 json 文件时添加了不同的列。即

{"id":10,"marks":20,"avg":25}

所以我只想保留具有唯一 ID 的行,否则在可视化中,同一 ID 会出现多次 avg。我怎样才能在 d3.js 中轻松做到这一点?或者有什么好的选择吗?

显然有很多方法可以获取唯一对象数组。据我所知,d3 中没有提供此功能的内置机制。我总是通过关联数组来跟踪输出数组中已经存在的对象来完成它。根据您的需要进行调整,它类似于:

var contains = {},
    unique = [];

for (var i = 0; i < data.length; i++) {
    if(!contains[data[i].id]) {
        contains[data[i].id] = true;
        unique.push(data[i]);
    }
}

看到这个JSFiddle