【发布时间】:2017-09-11 21:36:24
【问题描述】:
我有一个陨石着陆数据集。
我将数据嵌套在四个键中,按类型:
var dataByType = d3.nest()
.key(function(d) {
return d.rectype;
})
.entries(dataset); // the original array
这是生成的结构:data
现在我想创建新数组,过滤嵌套的数组:我希望每个过滤后的数组只包含“质量”属性在定义范围内的对象.
所以我尝试了这个:
// filter small meteorites
var lightWeight = dataByType.forEach(function(d){
d.values.filter(function (object) {
var mass = object.mass;
return mass <= 100;
});
});
但它返回 undefined。
嵌套给我带来了很多麻烦!我做错了什么?
提前致谢
【问题讨论】:
-
尝试使用
map而不是forEach并返回d。喜欢var lightWeight = dataByType.map(function(d){ d.values.filter(function (object) { var mass = object.mass; return mass <= 100; }); return d; }); -
请将您的数据发布为文本而不是图像。
-
你的 d.values 是一个数组所以....d.values[1].filter?
-
@ben 我试过
forEach(function(d, i){ d.values[i].filter(...)但它返回一个错误说“d.values[i].filter 不是一个函数” -
@chsdk 对不起,我是新手,不知道如何从 Firefox 控制台进行操作
标签: javascript arrays d3.js filter