我需要根据indexof方法是否显示对象中的各种字符串相似来创建一个过滤掉对象数组的管道。
例如,如果我们有数组
[{name: "john",
age: "17"},
{ name: "rob",
age: "20"}
]
我有过滤器对象
{name: "jo",
age: "1" }
它将返回对象{name: "john", age: "17"}
。
注意:这些数字是故意制作的字符串。
我怎样才能制作出这样做的烟斗?
答案 0 :(得分:1)
我不知道这是你在JavaScript中如何做的,我希望它有所帮助
var data = [{name: "john",
age: "17"},
{ name: "rob",
age: "20"}
];
var filter = {name: "jo", age: "1" };
var filtered = data.filter(function (person) {
// check objects keys are the same
if (Object.keys(person).join("") !== Object.keys(filter).join("")) return false;
//compare values
for (var key in filter) {
//false if empty string
if (filter[key] === "") return false;
if(person[key].indexOf(filter[key])) {
return false;
}
}
return true;
});
console.log(filtered);