角度过滤器 - 返回第二个数组中每个对象的对象?

时间:2015-10-08 15:29:31

标签: javascript angularjs filter

我很亲近,但需要你的帮助。我试图使过滤器循环通过2个数组,一个是文章列表,另一个是标签列表。

我想要发生的是,如果我有3个标签," nyc"," health-care"," tech",我想要的文章是包含所有三个标签。我当前的代码返回任何包含3个标签中的任何一个的文章。

.filter('selectedTags', function() {
    return function(articles, tags) {
        return articles.filter(function(article) {
            for (var i in article.article.tags) {
                for (var t in tags) {
                    if (tags[t].text === article.article.tags[i].text) {
                         return true;
                    }
                }
            }
            return false;
        });
    };
})

1 个答案:

答案 0 :(得分:1)

这应该有用..

.filter('selectedTags', function() {
return function(articles, tags) {
    return articles.filter(function(article) {
        var count = 0;
        for (var i in article.article.tags) {
            for (var t in tags) {
                if (tags[t].text === article.article.tags[i].text) {
                     count++;
                     if (count === tags.length){
                     return true;
                     }
                }
            }
        }
        return false;
    });
};
})