如何在数组中获得唯一值

如何在数组中获得唯一值

如何获得数组中唯一值的列表?我总是需要使用第二个数组,还是JavaScript中有类似于java的hashmap的东西?

我要用JavaScriptjQuery只有。不能使用其他库。



UYOU
浏览 350回答 3
3回答

梵蒂冈之花

由于我在@Rocket的答案的注释中继续讨论这个问题,我可以提供一个不使用库的示例。这需要两个新的原型函数,contains和uniqueArray.prototype.contains&nbsp;=&nbsp;function(v)&nbsp;{ &nbsp;&nbsp;for&nbsp;(var&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;<&nbsp;this.length;&nbsp;i++)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(this[i]&nbsp;===&nbsp;v)&nbsp;return&nbsp;true; &nbsp;&nbsp;} &nbsp;&nbsp;return&nbsp;false;};Array.prototype.unique&nbsp;=&nbsp;function()&nbsp;{ &nbsp;&nbsp;var&nbsp;arr&nbsp;=&nbsp;[]; &nbsp;&nbsp;for&nbsp;(var&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;<&nbsp;this.length;&nbsp;i++)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!arr.contains(this[i]))&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;arr.push(this[i]); &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;} &nbsp;&nbsp;return&nbsp;arr;}var&nbsp;duplicates&nbsp;=&nbsp;[1,&nbsp;3,&nbsp;4,&nbsp;2,&nbsp;1,&nbsp;2,&nbsp;3,&nbsp;8];var&nbsp;uniques&nbsp;=&nbsp;duplicates.unique();&nbsp;//&nbsp;result&nbsp;=&nbsp;[1,3,4,2,8]console.log(uniques);为了获得更高的可靠性,您可以替换contains用MDNindexOf并检查每个元素的indexOf等于-1:文献资料

慕桂英546537

这里有一个更干净的ES6解决方案,我看到这里不包括。它使用集而扩展算子:&nbsp;...var&nbsp;a&nbsp;=&nbsp;[1,&nbsp;1,&nbsp;2];[...&nbsp;new&nbsp;Set(a)]返回[1, 2]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript