[英]How to create a pipe in angular to filter array of objects with embedded array
[英]Angular 2 pipes: How to create a pipe that compares an object with an array of objects?
我需要创建一个管道,以根据indexof方法是否显示对象内的各种字符串相似来过滤出对象数组。
例如,如果我们有数组
[{name: "john",
age: "17"},
{ name: "rob",
age: "20"}
]
我有过滤器对象
{name: "jo",
age: "1" }
它将返回对象{name: "john", age: "17"}
。
注意:这些数字是故意制成的字符串。
我该怎么做才能做到这一点?
我不知道这是您可以在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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.