我的起始代码是下面的演示。
在左侧面板中,您可以按technos和hosts进行过滤,但过滤器仅选择元素,例如,这些元素具有关联的两个标签,因此可能取决于两个选定的technos。简言之,必须满足的条件是“和”。我想确保,如果您选择两种技术,那么图中依赖其中一种技术的所有元素都会高亮显示。因此,让条件为“或”。
我认为影响这一点的代码部分如下:
var filters = {
name: '',
labels: [],
difficulties: []
};
var isFoundByFilter = function(d) {
var i;
if (!filters.name && !filters.labels.length && !filters.difficulties.length) {
// nothing selected
return true;
}
if (filters.name) {
if (d.name.toLowerCase().indexOf(filters.name) === -1) return false;
}
var labelsCount = filters.labels.length;
if (labelsCount) {
if (d.index.labels.length === 0) return false;
for (i = 0; i < labelsCount; i++) {
if (d.index.labels.indexOf(filters.labels[i]) === -1) return false;
}
}
var difficultyCount = filters.difficulties.length;
if (difficultyCount) {
if (d.index.difficulties.length === 0) return false;
for (i = 0; i < difficultyCount; i++) {
if (d.index.difficulties.indexOf(filters.difficulties[i]) === -1) return false;
}
}
return true;
};
我在考虑使用像some或foreach这样的函数。
暂无答案!
目前还没有任何答案,快来回答吧!