在Javascript中从数组中提取对象

时间:2014-04-10 05:09:28

标签: javascript d3.js

我正在使用名为“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是空的。我做错了什么?

2 个答案:

答案 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。

的数据

https://github.com/mbostock/d3/wiki/Selections#filter