【发布时间】:2016-01-25 19:24:37
【问题描述】:
6天前,我问了这个问题:
how to select from filtervalues where genre comma delimited values contain only what is selected
我得到了答案;和一个家伙提供了这个小提琴的解决方案:
https://jsfiddle.net/AnishPatelUk/7swLn92c/
但我遇到了另一个问题。虽然我让它在逗号字符串中搜索匹配项并返回匹配项的长度等于数组。此代码不完整。
目标是让用户选择多个流派并显示这些流派。但是当用户选择 DVD 或蓝光等媒体类型时。结果应将该类型的所有项目显示为 dvd 和/或蓝光。
例如:
用户选择:冒险、科幻,然后是蓝光;只有星球大战和矩阵应该出现。
如果用户选择:冒险、科幻;星球大战、指环王和黑客帝国应该会出现。
为了选择我使用的一个匹配项:
var match = ko.utils.arrayFirst(genreValues,
function (genre) {
return self.filterValues.indexOf(genre.trim()) > -1;});
if (match) {
return match;
}
但是为了调出我使用的所有匹配结果:
var matches = ko.utils.arrayFilter(genreValues, function (genre) { return
self.filterValues.indexOf(genre.trim()) >= 0; });
return matches.length === self.filterValues().length;
也许有一种方法可以将它们结合起来?这是我的小提琴尝试: https://jsfiddle.net/0jr5Lc25/
【问题讨论】:
标签: javascript c# knockout.js