如何基于特定字段进行过滤

xzv2uavs  于 2021-09-29  发布在  Java
关注(0)|答案(0)|浏览(223)

我的起始代码是下面的演示。
在左侧面板中,您可以按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这样的函数。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题