键上的javascript数组对象过滤器
我有一个javascript数据库的格式键上的javascript数组对象过滤器,javascript,jquery,Javascript,Jquery,我有一个javascript数据库的格式 var db = [ { "id": "500020", "type": "0", "address": "", "firstName": "bob", "lastName": "builder", "title": "Mr", "managerId": "0", "officeId": "222", "cellPhone": "", "officePhone": "001221212121", "email": "myemail@domain.com"
var db = [
{ "id": "500020", "type": "0", "address": "", "firstName": "bob", "lastName": "builder", "title": "Mr", "managerId": "0", "officeId": "222", "cellPhone": "", "officePhone": "001221212121", "email": "myemail@domain.com", "Hours": "", "Custface": "", "Hearloop": "", "Parking": "", "Toilets": "", "Wheelchair": "", "OfficeType": "", "lat": "", "lon": "", "Company": "mycompany","image": "1111" },
{ "id": "500025", "type": "0", "address": "", "firstName": "danny", "lastName": "mccanny", "title": "Mr", "managerId": "0", "officeId": "0", "cellPhone": "", "officePhone": "012545251", "email": "Danny@mccanny.com", "Hours": "", "Custface": "", "Hearloop": "", "Parking": "", "Toilets": "", "Wheelchair": "", "OfficeType": "", "lat": "", "lon": "", "Company": "dannycompany","image": "500025" }
]
然后我像这样引用它
this.employees = db;
在一个函数中,当用户像这样搜索时,我会过滤它
var employees = this.employees.filter(function (element) {
var fullname = element.firstname + " " + element.lastname;
return fullname.tolowercase().indexof(searchkey.tolowercase()) > -1;
});
问题是它正在搜索对象的每个元素,而不仅仅是firstName和lastName
有人能告诉我如何使用javascript或jquery过滤名字吗?我们可以使用jquery grep方法过滤数据,代码将
var employees = $.grep(this.employees, function(element){
var fullname = element.firstName + " " + element.lastName;
return fullname.toLowerCase().indexOf(searchkey.toLowerCase()) > -1;
})
首先…键入错误…在element.firstName、element.lastName和function中是indexOf,而不是indexOf..,toLowerCase,而不是toLowerCase它正在搜索对象的每个元素-您是指对象的每个属性吗?你认为这到底发生在哪里?它显然在搜索您提到的属性的连接。请提供足够的代码来复制此问题。语句和错误纠正后显示的代码相反,错误首先应该抛出错误。@Rakesh_Kumar还指出,JS区分大小写。所以firstName并不等同于firstName等等。@tramp-man你想要这样的东西吗