过滤/选择特定类型的数据

时间:2012-04-17 01:39:54

标签: javascript d3.js

我想在数据数组中选择具有特定参数值的元素。

前:

[{type: "suv", value:10},{type: "suv", value:20},{type: "berline", value:15},{type: "berline", value:5}]

那么,在绘制我的价值数据时,我怎么才会考虑type:"suv"

我能找到的唯一类似的东西是selectAll,但它似乎只选择UI中的元素(?)

如果这更简单,请耐心等待,我不太习惯d3.js,关于这个主题的信息很少见。

2 个答案:

答案 0 :(得分:5)

如果您在使用d3.selectAll(...).data(...)...之前尝试过滤数据,请使用:

var myArr = [{type: "suv", value:10},{type: "suv", value:20},{type: "berline", value:15},{type: "berline", value:5}];
var myFilteredArr = myArr.filter(function(d) { return d.type == "suv"; });

您是否正在尝试修改已显示的内容?

答案 1 :(得分:0)

您可以使用自己的过滤器函数循环遍历数组,如下所示返回一个新数组,其中只包含与过滤器匹配的元素:

var filterArray(arr, key, value) {
    var result = [], item;
    for (var i = 0; i < arr.length; i++) {
        item = arr[i];
        if (item[key] && item[key] === value) {
            result.push(item);
        }
    }
    return(result);
}

var myArr = [{type: "suv", value:10},{type: "suv", value:20},{type: "berline", value:15},{type: "berline", value:5}];
var filteredArr = filterArray(myArr, "type", "suv");