我正在使用名为“dataset”的数组处理D3.JS图表,其中每个条目都是一个具有键和值属性的对象,如下所示:
dataset=
[
{"key":"alpha", "value": [ {}, { } ...]},
{"key":"beta", "value": [ { }, { } ...]},
{"key":"gamma", "value": [ {}, { } ...]},
{"key":"delta", "value": [ { }, { } ...]}
];
我需要提取其中一个对象来创建一个新数组。我尝试过以下方法:
filteredDataset = dataset.filter(function(d){ console.log("d",d); if(d.key === "gamma") return d});
我可以在控制台中看到我正在访问数据集中的每个对象,但生成的filteredDataset是空的。我做错了什么?
答案 0 :(得分:1)
为清楚起见,filter
应该使用boolean
:
喜欢:
filteredDataset = dataset.filter(function(d){ return d.key === "gamma"})
我的代码
var dataset = [
{"key":"alpha", "value": [ {}, { }]},
{"key":"beta", "value": [ { }, { }]},
{"key":"gamma", "value": [ {}, { }]},
{"key":"delta", "value": [ { }, { }]}
];
filteredDataset = dataset.filter(function(d){ return d.key === "gamma"})
输出:
[ { key: 'gamma', value: [ {}, {} ] } ]
所以请仔细检查您的代码
答案 1 :(得分:0)
dataset.filter(function(d){return d.key === 'gamma';});
这将返回key === gamma。