关于node.js:NodeJS:如何从Array中删除重复项

NodeJS: How to remove duplicates from Array

本问题已经有最佳答案,请猛点这里访问。

我有一个数组:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[
    1029,
    1008,
    1040,
    1019,
    1030,
    1009,
    1041,
    1020,
    1031,
    1010,
    1042,
    1021,
    1030,
    1008,
    1045,
    1019,
    1032,
    1009,
    1049,
    1022,
    1031,
    1010,
    1042,
    1021,
]

现在我要从中删除所有的副本。nodejs中是否有任何方法可以直接做到这一点?


不,node.js中没有内置方法,但是有很多方法可以在javascript中实现这一点。你所要做的就是四处看看,因为这已经被回答了。

1
2
3
uniqueArray = myArray.filter(function(elem, pos) {
    return myArray.indexOf(elem) == pos;
})


不,没有内置的方法可以从数组唯一的方法中获取,但是您可以查看名为lodash的库,它具有如此伟大的方法_.uniq(array)

另外,由于node.js现在支持set,所以建议使用替代方法。而不是使用第三方模块,而是使用内置的替代方法。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
var array = [
    1029,
    1008,
    1040,
    1019,
    1030,
    1009,
    1041,
    1020,
    1031,
    1010,
    1042,
    1021,
    1030,
    1008,
    1045,
    1019,
    1032,
    1009,
    1049,
    1022,
    1031,
    1010,
    1042,
    1021,
];

var uSet = new Set(array);
console.log([...uSet]); // Back to array