Javascript 从搜索词列表创建绑定列表投影

Javascript 从搜索词列表创建绑定列表投影,javascript,windows-8,winjs,Javascript,Windows 8,Winjs,我正试图从一组搜索词中创建一个过滤列表投影。例如,如果我有一个搜索词,我可以这样做: if (options.groupKey == "filtered") { this._items = Data.getItemsFromGroup(this._group); var query = Windows.Storage.ApplicationData.current.localSettings.values["filters"]; this._items = this._i

我正试图从一组搜索词中创建一个过滤列表投影。例如,如果我有一个搜索词,我可以这样做:

if (options.groupKey == "filtered") {
    this._items = Data.getItemsFromGroup(this._group);
    var query = Windows.Storage.ApplicationData.current.localSettings.values["filters"];
    this._items = this._items.createFiltered(function (item) {
        if (item.content.search(query) > -1) {
            return true
        } else {
            return false
        }
    })
}
Cisco
Microsoft
Dell
但是,如果“过滤器”本地设置是一个CRLF分隔的列表,该怎么办

if (options.groupKey == "filtered") {
    this._items = Data.getItemsFromGroup(this._group);
    var query = Windows.Storage.ApplicationData.current.localSettings.values["filters"];
    this._items = this._items.createFiltered(function (item) {
        if (item.content.search(query) > -1) {
            return true
        } else {
            return false
        }
    })
}
Cisco
Microsoft
Dell

目前,搜索将把每个术语与“Cisco/nMicrosoft/nDell”进行比较,这显然是行不通的<代码>内容。搜索不接受数组。我是否应该以某种方式在
createFiltered
函数中执行一个循环?这似乎不符合投影的精神。一般公认的方法是什么?

如何在每个过滤器都是属性的
设置中存储和对象?那对你有用吗

if (options.groupKey == "filtered") {
    this._items = Data.getItemsFromGroup(this._group);
    var query = Windows.Storage.ApplicationData.current.localSettings.values["filters"];
    this._items = this._items.createFiltered(function (item) {
        return Object.keys(query).indexOf(item) > -1;
    })
}
查询
对象如下所示:

{ 
    Cisco: "",
    Microsoft: "",
    Dell: ""
}
这有意义吗


edit:对代码做了一点更改,因为我相信
if(query[item])
会因为javascript类型转换而始终返回
false
,谢谢!我还没有把它付诸实施,但它看起来至少会是我想要做的事情的一个好的开始。