删除数字数组中的相似元素
我有一个数字数组,例如:[1, 4, 7, 1, 2, 1, 3, 1, 4]
。
我想删除重复元素并对结果进行排序,即所需的结果是:[1,2,3,4,7]
。
是否有任何内置的 Javascript/jQuery 函数可以做到这一点,或者我必须编写自己的函数?
I have an array of numbers, like: [1, 4, 7, 1, 2, 1, 3, 1, 4]
.
I would like to remove duplicate elements and sort the result, i.e. the required result is:[1, 2, 3, 4, 7]
.
Is there any built in Javascript/jQuery functions to do this, or I must write my own ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
不,没有任何内置的东西。另外,您需要注意默认排序是词法排序,因此
[9, 1, 10].sort()
将返回[1, 10, 9]
。以下将对数字数组进行排序并删除重复项:
No, there's nothing built-in. Also, you need to be aware that the default sort is lexical, so
[9, 1, 10].sort()
will return[1, 10, 9]
.The following will sort and remove duplicates from an array of numbers in place:
Underscore 库 非常适合所有这些技巧;我喜欢它,没有它我就活不下去!!
声明它后,您可以使用下划线调用其函数,如下所示:
如果您希望对其进行排序:
来自上面链接的页面:
“下划线提供了 60 多个函数,支持常见的功能怀疑:map、select 、调用——以及更专业的帮助器:函数绑定、JavaScript 模板、深度相等测试等等。”
The Underscore library is great for all those kinds of tricks; I love it and wouldn't be able to live without it!!
Once you declare it, you call its functions by using the underscore, like this:
If you want it sorted:
From the page linked above:
"Underscore provides 60-odd functions that support both the usual functional suspects: map, select, invoke — as well as more specialized helpers: function binding, javascript templating, deep equality testing, and so on."
从 JavaScript 1.6 开始,array.filter() 可用于删除重复值:
returns
过滤器的优点在于它适用于数组中的所有值类型:
returns
As of JavaScript 1.6, array.filter() can be used to remove duplicate values:
returns
What's nice about filter is it works on all value types in the array:
returns