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

时间:2015-04-14 22:41:09

标签: javascript json 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的行,否则在可视化中avg将针对相同的id多次出现。我怎么能在d3.js中轻松做到这一点?或者有什么好的选择吗?

1 个答案:

答案 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