我正在使用list.js按类别对项目列表进行排序。如果每个列表项只适用于一个类别,那么很容易就能完成工作,但是如果某个类别被分配了多个类别,我正在努力使这种排序正确。
This is what I have so far on Codepen.io
基本上,我希望能够用饮料和游戏标记东西。我显然没有骑自行车穿过我为每个项目的类别正确创建的数组...所以它只承认第一项?
List.js的文档对于如何以这种方式使用它没有多大帮助。我发现list.js维护者标记为关闭似乎有关系的问题,但他基本上只是告诉该人在这里寻求帮助,所以这就是我正在尝试的。 https://github.com/javve/list.js/issues/189
答案 0 :(得分:0)
我认为这是问题
for (var i=0, j=tryThis.length; i<j; i++) {
if (tryThis[i] == selection) {
return true;
} else {
return false;
}
}
如果第一个类别适合,则返回true,但如果第一个类型不适合,则立即返回false,防止再进行比较。
你不应该在循环中返回false,而只是在循环之后,当你知道没有类别匹配时。
=====更新
featureList.filter(function(item) {
此调用是否会更改列表,还是返回已过滤的列表?
如果它返回已过滤的列表(通常的方式),您永远不会保存返回的值吗?
要保存从过滤器函数返回的值,通常只需指定返回值。
list = list.filter(function(i) { });
如果在这种情况下有效,则取决于滤波器功能的设计,但尝试一下。