在客户端过滤嵌套对象

时间:2015-02-16 19:32:58

标签: javascript ajax d3.js

我有一个基于此的d3.js散点图:http://bl.ocks.org/nsonnad/4481531

我正在尝试添加一个允许您根据(在示例的情况下)国家/地区(每个由颜色气泡表示)进行过滤的功能。

数据来自.csv文件,但是当我在console.log中时,它会像这样呈现:

[0 … 99]
   0: Object
       attribute: "INFJ"
       category: "Personality Type"
       incidence: "1.04"
       index_value: "65"
       main_grouping: "Behaviors"
     __proto__: Object
   1: Object
   2: Object
   3: Object
    ETC...

我想要做的是获取具有特定main_grouping的所有行。如果我这样做,我可以获得所有main_grouping的列表,但这只是第一步。

d3.csv("example.csv", function(data) {
    $.each(data, function (index, value) {
        console.log(value.main_grouping);
        });

我不知道如何处理这个问题或者从这里开始就是说,给定一个main_grouping(将通过下拉列表选择...我可以处理这个部分),只返回这些行为data,用于呈现散点图的脚本的其余部分。

这里没有服务器端选项,所以我必须找出客户端的东西。

1 个答案:

答案 0 :(得分:1)

您可以使用数组filter

d3.csv("example.csv", function(data) {
data_filtered = data.filter(function(d){
    return d.main_grouping == selected_grouping;
  });
}