
[英]javascript - search for string in array of objects and return array
[英]Good way to search array for string and return those objects
因此,我一直在使用此来宾列表前端应用程序完成工作。 我想做的最后一件事是允许传递字符串以按名称过滤列表。 因此,通过订阅用户在字段中输入一些名称,我应该能够使用此ko计算函数以这种不同方式搜索数组。 请记住,self.guests是访客对象的数组。
self.displayResults = ko.computed(function(){
if(self.displayTypeOf() == 'slice'){
var ary = self.guests.slice(self.startValue(),self.endValue());
console.log(ary)
return ary
}else if(self.displayTypeOf() == 'string'){
//Code I need goes here
}
});
您可以看到,通常使用列表的切片部分来计算列表,当用户开始在输入中输入内容时,我将使用我要的搜索数组函数覆盖并更新此计算列表。
提前致谢!
我建议给ko.utils.arrayFilter
实用程序函数进行过滤:
self.displayResults = ko.computed(function(){
if(self.displayTypeOf() == 'slice'){
var ary = self.guests.slice(self.startValue(),self.endValue());
console.log(ary)
return ary
}else if(self.displayTypeOf() == 'string'){
// Init filter
var filter = self.SomeValue();
var ary = ko.utils.arrayFilter(self.guests(), function(item) {
return ko.utils.stringStartsWith(item.name().toLowerCase(), filter);
});
console.log(ary);
return ary;
}
});
在此处详细了解ko utils方法: http : //www.knockmeout.net/2011/04/utility-functions-in-knockoutjs.html
您可以使用Array :: filter 。
var guestlist = [ 'Foo Bar', 'Doo Bar', 'Foo Doo', ... ];
function guestFilter(element) {
return element.indexOf('Bar') > 0;
}
guestlist.filter(guestFilter); // [ 'Foo Bar', 'Doo Bar' ]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.