我想在数据数组中选择具有特定参数值的元素。
前:
[{type: "suv", value:10},{type: "suv", value:20},{type: "berline", value:15},{type: "berline", value:5}]
那么,在绘制我的价值数据时,我怎么才会考虑type:"suv"
?
我能找到的唯一类似的东西是selectAll,但它似乎只选择UI中的元素(?)
如果这更简单,请耐心等待,我不太习惯d3.js,关于这个主题的信息很少见。
答案 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");