我有一个陨石着陆数据集。
我按类型将数据嵌套在四个键中:
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。
嵌套给我带来了很多麻烦!我做错了什么?
提前致谢
最佳答案
我认为您在 forEach 的每次传递中都覆盖了 lightWeight。而是尝试创建 lightWeight 作为它自己的对象,然后在循环中添加你想要的键:
const lightWeight = {};
dataByType.forEach(function(d){
lightWeight[d.key] = d.values.filter(function (object) {
var mass = object.mass;
return mass <= 100;
});
});
工作笔(我认为?)正在做你想做的事: https://codepen.io/benjaminwfox/pen/veBjrP?editors=0012
关于javascript - 通过 d3.js 中的对象属性过滤嵌套的对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46164712/