【发布时间】:2025-12-21 07:20:16
【问题描述】:
是否可以过滤以数组为值的交叉过滤器数据集?
例如,假设我有以下数据集:
var data = [
{
bookname: "the joy of clojure",
authors: ["Michael Fogus", "Chris Houser"],
tags: ["clojure", "lisp"]
},
{
bookname: "Eloquent Ruby",
authors: ["Russ Olsen"],
tags: ["ruby"]
},
{
bookname: "Design Patterns in Ruby",
authors: ["Russ Olsen"],
tags: ["design patterns", "ruby"]
}
];
有没有一种简单的方法可以访问带有特定标签的书籍?还有那些有特定作者的书?到目前为止,我理解如何使用交叉过滤器的方式让我做了这样的事情:
var filtered_data = crossfilter(data);
var tags = filtered_data.dimension(function(d) {return d.tags});
var tag = tags.group();
然后当我访问分组时(像这样):
tag.all()
我明白了:
[{key: ["clojure", "lisp"], value: 1},
{key: ["design patterns", "ruby"], value: 1},
{key: ["ruby"], value: 1}]
当我更喜欢这个时:
[{key: "ruby", value: 2},
{key: "clojure", value: 1},
{key: "lisp", value: 1},
{key: "design patterns", value: 1}]
【问题讨论】:
-
我相信我的问题会随着时间的推移变得越来越模糊。这是相当不幸的。
-
一点也不晦涩。我今天正在寻找这个。
标签: d3.js crossfilter