数组去重

2019 年 7 月 18 日
 wenjay

数组去重

 Array.prototype.unique1 = function () {
   var n = []; //一个新的临时数组
   for (var i = 0; i < this.length; i++) //遍历当前数组
   {
     if (n.indexOf(this[i]) == -1) n.push(this[i]);
   }
   return n
}
8305 次点击
所在节点    JavaScript
49 条回复
zhao7399686
2019 年 7 月 18 日
?
NewDraw
2019 年 7 月 18 日
这代码是在养蛊啊!
AlloVince
2019 年 7 月 18 日
``` js
Array.from(new Set(inputArray));
```
wenjay
2019 年 7 月 18 日
发出去的文章不能修改的吗?
shakaraka
2019 年 7 月 18 日
wenjay
2019 年 7 月 18 日
@AlloVince ES6 就是如此简单,不过面试老喜欢问这个问题,要如何回答才能显得高级呢😂
Yumwey
2019 年 7 月 18 日
用 filter 一行就写完了
starsriver
2019 年 7 月 18 日
es6 new 的 array 自动去重。
wenjay
2019 年 7 月 18 日
lihongjie0209
2019 年 7 月 18 日
数据结构没学好?
xingyue
2019 年 7 月 18 日
我这是要完犊子了吗,看了半天没觉得有什么问题.....除了代码啰嗦了点。再看看 #1 #2 #10,现在内心慌的一.....
taogen
2019 年 7 月 18 日
就说算法的时间复杂度为 O(n^2),空间复杂度为 O(n)。高级否?
taogen
2019 年 7 月 18 日
另外,用 hash table 作为中间容器,时间复杂度可以为 O(n)
oIMOo
2019 年 7 月 18 日
转成 set 再转回 list 怎么样?
lynnic
2019 年 7 月 18 日
时间复杂度为啥是 n 方?
necomancer
2019 年 7 月 18 日
@lynnic indexof 是 o(n) 的吧
Chemist
2019 年 7 月 18 日
@necomancer 外面还有一层 n🤣
serenader
2019 年 7 月 19 日
LZ 的这个方法有个 bug,无法去重 NaN 以及 {} 。

几年前我写过一篇文章,也是讲去重的:blog.serenader.me/javascript-shu-zu-qu-zhong/

不过刚刚看了一下,我文章里面最后给出的方案也有 bug。。纯粹当抛砖引玉了,看看大家能找到几个 bug 🤣🤣
indomi
2019 年 7 月 19 日
[...new Set(arr)]
bumz
2019 年 7 月 19 日
ES6 之前就手写一哈希表,高级吗,手动狗头

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/584224

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX