Javascript 角度重复-重复一次

Javascript 角度重复-重复一次,javascript,json,angularjs,foreach,repeat,Javascript,Json,Angularjs,Foreach,Repeat,不确定这是否可能是有棱角的,但它会很可爱 假设我有一个汽车的json对象。所以很多车型,很多品牌福特,沃克斯豪尔,大众汽车等等。然后我将使用数据ng重复列出所有的汽车 但我想列出一些复选框,以便能够根据汽车的品牌进行过滤。在获得JSON之前,我不知道汽车的可能品牌,因此我无法预先填充列表 这里是一个快速演示 现在我可以单独循环所有项目,拉出make,检查make是否存在于另一个数组中,如果不存在,则将其抛出。但这一切似乎真的很烦人:我可能要处理成千上万的对象 那么,有没有一个快速的胜利?或者在

不确定这是否可能是有棱角的,但它会很可爱

假设我有一个汽车的json对象。所以很多车型,很多品牌福特,沃克斯豪尔,大众汽车等等。然后我将使用数据ng重复列出所有的汽车

但我想列出一些复选框,以便能够根据汽车的品牌进行过滤。在获得JSON之前,我不知道汽车的可能品牌,因此我无法预先填充列表

这里是一个快速演示

现在我可以单独循环所有项目,拉出make,检查make是否存在于另一个数组中,如果不存在,则将其抛出。但这一切似乎真的很烦人:我可能要处理成千上万的对象

那么,有没有一个快速的胜利?或者在正常的JS中


干杯

您可以创建一个自定义过滤器,以返回汽车品牌的唯一名称列表

<div data-ng-repeat="carmake in cars | uniquemake">
    <input type="checkbox" ng-model="search[carmake]" />{{ carmake }}
</div>

app.filter('uniquemake', function () {
    return function (cars, length, end) {
        var result = {};
        angular.forEach(cars, function (car) {
            result[car.make] = 1;
        });
        return Object.keys(result);
    };
});

不确定是否有一个特定的角度指示,特别是对于这个。它更多的是关于排序和搜索优化。如果您希望尽可能有效地处理汽车列表中的人口,您可以按字母顺序对原始列表进行排序,然后对其进行浏览。将第一项添加到列表中,然后查看下一项。如果与上一个项目不相同,请将其添加到列表中并移动到下一个项目。如果是,请转到下一项。这里有几种很酷的方法可以做到这一点:。就我个人而言,我喜欢$.grep的答案。非常sza,工作很愉快:虽然还没有连接到搜索,但肯定会很好