打字稿

时间:2017-06-16 07:58:13

标签: javascript html angular typescript

Angular2 typescript搜索从数组到对象数组的相同值。 我想要过滤的是object_array ['extraService']中存在的array_values中的任何值,如果存在返回对象。 这是Angular Pipe,用于为某些搜索功能重新生成模板。

let array_values = ["5", "4", "3"]
let items = [{'name': "Marin", extraService:[5, 4]}, {'name': "Marin", extraService:[3, 4]}]

按打字稿过滤我的尝试

return items.filter(item => items.array_values(f => f == item.extraService));

所以输出的一些例子。 如果array_values只是

let array_values = ["3"]

然后返回的输出将是:

result = [{'name': "Marin", extraService:[3, 4]}]

任何建议或示例如何管理此工作。

1 个答案:

答案 0 :(得分:3)

 let array_values = ["5", "4", "3"]
        let items = [{'name': "Marin", extraService:[5, 4]}, {'name': "Marin", extraService:[3, 4]}];

        let results = items.filter(item => {
            const result = item.extraService.filter(extra => {
                return array_values.indexOf(extra.toString()) !== -1;
            });
            if (result.length > 0) return true;
            return false;
        });
        console.log(results);

您可以尝试这种方法:

 let array_values = ["5", "4", "3"]
    let items = [{'name': "Marin", extraService:[5, 4]}, {'name': "Marin", extraService:[3, 4]}];

    return items.filter(item => {
        const result = item.extraService.filter(extra => {
            return array_values.indexOf(extra.toString()) !== -1;
        });
        if (result.length > 0) return true;
        return false;
    });