0

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

前任:

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

那么,在绘制我的价值数据时,我将如何只type:"suv"考虑 ?

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

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

4

2 回答 2

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"; });

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

于 2012-04-17T02:03:03.537 回答
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");
于 2012-04-17T02:17:13.380 回答