如何在Javascript中只使用过滤器获取唯一数组

时间:2016-11-29 04:53:58

标签: javascript angularjs arrays

我有一个数组:

var a = [2,3,4,5,5,4]

我希望从给定的数组中获取唯一的数组,如

b = [2,3,4,5]

我试过了

a.filter(function(d){return b.indexOf(d)>-1})

我不想使用for循环。

3 个答案:

答案 0 :(得分:13)

您可以使用filter方法的第二个索引参数在JavaScript中执行此操作:

var a = [2,3,4,5,5,4];
a.filter(function(value, index){ return a.indexOf(value) == index });

答案 1 :(得分:3)

这不是与Angular相关的问题。它可以通过几种方式解决,具体取决于您使用的库。

如果您使用的是jquery:

var uniqeElements = $.unique([2,3,4,5,5,4]);

输出结果为:

[2,3,4,5]

如果您使用下划线:

var uniqeElements = _.uniq([2,3,4,5,5,4]);

相同的输出。

纯JS代码:

var unique = [2,3,4,5,5,4].filter(function(elem, index, self) {
    return index == self.indexOf(elem);
})

答案 2 :(得分:0)

var b = a.filter( function( item, index, inputArray ) {
       return inputArray.indexOf(item) == index;
});