我有一个如下所示的 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 的平均值会出现多次。我如何在 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 .
关于javascript - 如何在 d3.js 中保留具有唯一 ID 的行一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29638615/