如何在 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。
我有一个 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。