我有一个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的行,否则在可视化中avg将针对相同的id多次出现。我怎么能在d3.js中轻松做到这一点?或者有什么好的选择吗?
答案 0 :(得分:1)
显然有很多方法可以获得一系列独特的对象。据我所知,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。