有没有办法在具有一个或多个值的属性上创建维度?例如
{quantity: 2, total: 190, tip: 100, items: ["apple","sandwich"],
{quantity: 2, total: 190, tip: 100, items: ["ice-cream"]},
{quantity: 1, total: 300, tip: 200, items: ["apple", "coffee"]}
我的目标是创建一个交叉过滤器,它可以沿着具有序数值的维度过滤掉条目。有没有办法编写一个过滤器/维度,让我说“我想要所有包含‘苹果’项的条目”?
我能想到的唯一解决方法是为每个项目创建一个维度。像这样:
var paymentsByApple = payments.dimension(function(d) { return $.inArray("apple", d.items); });
var paymentsByCoffee = payments.dimension(function(d) { return $.inArray("coffee", d.items); });
// and one for every possible item
主要问题是我不想枚举和硬编码所有不同的对象。此外,我最终可能会拥有许多可能的不同项目。有没有更聪明的方法来做到这一点?
提前致谢!
最佳答案
在这里遇到同样的问题,并且看不到当前 lib 功能的简单解决方法,请参阅 this .
更改数据模型以适应 Pablo Navaro 提出的单个值维度的问题在于,您需要确保为其他维度计算的统计数据不会失真(重复计算、校正平均值……)
希望看到一个过滤器在多个值维度上工作,或者有更多的时间来挖掘代码库以提出一个......
关于d3.js - D3 交叉滤波器尺寸的离散滤波器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11571869/