Javascript 将属性与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

我在Knockout.js中有一个可观察的数组,其中存储了一个人员列表。此数组的结构如下所示:

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
方法,例如,它不适用于数字

试一试