0
所以过滤对象,我有这个简单的数据集:JavaScript。通过multple性能
现场演示:http://jsbin.com/ramuwow/edit?js,console
var members = [{
"id": "1",
"firstName": "JOHN",
"lastName": "MARTY"
}, {
"id": "2",
"firstName": "JONES",
"lastName": "SMITH"
}, {
"id": "3",
"firstName": "MARY",
"lastName": "DOE"
}, {
"id": "4",
"firstName": "MARGARET",
"lastName": "KANE"
}];
,我必须从输入字符串的一块来搜索这些对象。
我可以做名字和姓氏到id。但我不能做第一个和最后一个名字。
这里是我到目前为止有:
var members = [{"id":"1","firstName":"JOHN","lastName":"MARTY"},{"id":"2","firstName":"JONES","lastName":"SMITH"},{"id":"3","firstName":"MARY","lastName":"DOE"},{"id":"4","firstName":"MARGARET","lastName":"KANE"}];
var filteredNames = members.filter(function(n){
var query = "MARY DO";
var splitUp = query.split(" ");
console.log(splitUp);
return n.firstName.indexOf(query) > -1 ? n : false ||
n.lastName.indexOf(query) > -1 ? n : false ||
n.id.indexOf(query) > -1 ? n : false ||
n.firstName.indexOf(splitUp[0]) > -1 && n.lastName.indexOf(splitUp[1]);
});
console.log(filteredNames);
,并返回:
["MARY", "DO"]
["MARY", "DO"]
["MARY", "DO"]
["MARY", "DO"]
[]
我在做什么错?应出现MARY DOE
的对象。
您对'.indexOf()进行的最后一次调用缺少与'-1'的比较。 – Pointy
此外,您的代码*日志*这些数组,但实际的*返回值*是最后一个(空)数组。 – Pointy