Javascript 将属性与knockout.js中多维可观察数组中的搜索字符串进行比较
我在Knockout.js中有一个可观察的数组,其中存储了一个人员列表。此数组的结构如下所示:Javascript 将属性与knockout.js中多维可观察数组中的搜索字符串进行比较,javascript,knockout.js,multidimensional-array,ko.observablearray,Javascript,Knockout.js,Multidimensional Array,Ko.observablearray,我在Knockout.js中有一个可观察的数组,其中存储了一个人员列表。此数组的结构如下所示: Array |--- Person 1 |--- ID |--- Name |--- ... |--- Person 2 |--- ID |--- Name |--- ... |--- ... self.searchValue = ko.observable(); se
Array
|--- Person 1
|--- ID
|--- Name
|--- ...
|--- Person 2
|--- ID
|--- Name
|--- ...
|--- ...
self.searchValue = ko.observable();
self.throttledValue = ko.computed(self.searchValue).extend({ throttle: 500 });
//Search by value
self.throttledValue.subscribe(function (val) {
if (val !== ''){
for (var i = 0; i < self.persons().length; i++) {
var name = self.persons()[i].fullName;
var id = self.persons()[i].ID;
//Further search logic here
}
}
}, self);
//This code should replace the "further search logic"
if(name.toLowerCase().contains(val.toLowerCase()){
//It's a hit!
}
我有一个搜索栏,可以将它的值与一个人的任何字段进行比较。所以,如果我输入“000”,那就是第1个人的ID,它应该是一个成功。如果我输入“Person”,如果是Person 2的名字,也是一样的
目前,我的代码如下所示:
Array
|--- Person 1
|--- ID
|--- Name
|--- ...
|--- Person 2
|--- ID
|--- Name
|--- ...
|--- ...
self.searchValue = ko.observable();
self.throttledValue = ko.computed(self.searchValue).extend({ throttle: 500 });
//Search by value
self.throttledValue.subscribe(function (val) {
if (val !== ''){
for (var i = 0; i < self.persons().length; i++) {
var name = self.persons()[i].fullName;
var id = self.persons()[i].ID;
//Further search logic here
}
}
}, self);
//This code should replace the "further search logic"
if(name.toLowerCase().contains(val.toLowerCase()){
//It's a hit!
}
但是显然,无论是toLowerCase()
还是contains()
都不会被识别,从而导致在尝试加载页面时出错
有人能帮我找到正确的方向吗
提前谢谢 toLowerCase()
是一种string
方法,例如,它不适用于数字
试一试