繁体   English   中英

Angular 2管道:如何创建将对象与对象数组进行比较的管道?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM