【发布时间】:2016-10-11 02:20:44
【问题描述】:
所以我从 D3 加载了一个 JSON 对象,现在想从数组中过滤掉一些列。我唯一的问题是这样做:
Object.attribute;
不返回我想要的。我的 JSON 对象的结构如下。它包含 1000 个对象,每个数组都包含其中的属性。我从https://data.raleighnc.gov/resource/xce4-kemu.json 获取我的数据,以供参考。
如果我这样做了
Object[0].attribute;
它返回对象的实际值,比如“12”。我希望它在哪里返回该键存在的所有值
在 URL 中,您可以看到 JSON 的示例。例如,我想返回一个 JSON,其中仅存在 issuedate_mth、statelicnum 和 constcompletedofficial 属性。
我尝试过的片段是:
var raleigh_data = "https://data.raleighnc.gov/resource/xce4-kemu.json";
d3.json(raleigh_data, function(error, data) {
var filtered_data = data.filter(function(d,i,e) {
return d.issueddate_mth;
});
}
【问题讨论】:
-
这是一个包含 1000 个对象的数组,而不是 1000 个数组
-
你想从这些数据中过滤什么?
-
使用
var filteredArray = xxx.filter(callbackFunction)之类的东西来过滤数组(在这种情况下,数组是一个名为 xxx 的 var ...您不要想要使用一个名为Object的 var ) ... callbackFunction 是一个接受 3 个参数、项目、索引和整个数组的函数 ... 做你的逻辑并返回 true 或 false 以在返回的新数组中包含/排除项目 -
我的理解是否正确——您想遍历数组中的每个对象并返回每个对象中存在的给定属性的所有值的数组?
-
@anied 我更新了我的答案,希望能更清楚
标签: javascript arrays d3.js filter