NodeJS:如何从数组中删除重复项[重复]
Posted
技术标签:
【中文标题】NodeJS:如何从数组中删除重复项[重复]【英文标题】:NodeJS: How to remove duplicates from Array [duplicate] 【发布时间】:2014-06-07 21:31:38 【问题描述】:我有一个数组:
[
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中是否有任何方法可以直接做到这一点。
【问题讨论】:
这可能比其他方法更快 myArray.filter(function(item , index, arr) return arr.indexOf(item)=== index) 请忽略我之前的评论,看错了你的问题。 【参考方案1】:不,node.js 中没有内置方法,但是在 javascript 中有很多方法可以做到这一点。您所要做的就是look around,因为这已经得到了回答。
uniqueArray = myArray.filter(function(elem, pos)
return myArray.indexOf(elem) == pos;
)
【讨论】:
感谢 Mihai 和 Jurka。我只是想知道是否有任何内置方法可以做到这一点。无论如何,你们解决了我的问题。最好的问候 @YoYoSatySingh 现在最好在 Node.js 中通过Set
。浏览器支持也开始实现。
短版:uniques = array.filter((x, i) => i === array.indexOf(x))
【参考方案2】:
不,没有内置方法可以从数组唯一方法中获取,但您可以查看名为 lodash 的库,它具有如此出色的方法 _.uniq(array)
。
另外,提出替代方法,因为 Node.js 现在已经支持 Set。不要使用 3rd 方模块,而是使用内置的替代方案。
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
【讨论】:
不应该是_.uniq
而不是_.unique
吗?
不错,方法叫_.uniq
,已修复。以上是关于NodeJS:如何从数组中删除重复项[重复]的主要内容,如果未能解决你的问题,请参考以下文章