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

标签 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 的行,否则在可视化中,同一 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/

相关文章:

java - Stripes & jQuery - 我如何在 ajax 请求中发送变量?

javascript - 将 Json 对象导出到文本文件

html - 如何在不使用变换旋转的情况下从下到上写垂直文本?

javascript - 为 flot 图形数组格式化 json 数据

javascript - 将 json 中的文本分成多行以在 D3 强制布局中显示标签

javascript - d3 将对象转换为数组

javascript - 使用 D3.JS 在同一个 SVG 上放置多组圆

javascript - 使用 $obj->select 对从数据库中提取的数组进行排序

javascript - 使用 JS/Ajax 动态获取带有 anchor 的 URL

javascript - setInterval() 如何影响性能?