【发布时间】:2010-12-29 22:47:00
【问题描述】:
我有一组数字,我需要确保它们是唯一的。我在互联网上找到了下面的代码 sn-p 并且它工作得很好,直到数组中的零。我在 Stack Overflow 上找到了 this other script,看起来几乎一模一样,但它并没有失败。
所以为了帮助我学习,谁能帮我确定原型脚本哪里出错了?
Array.prototype.getUnique = function() {
var o = {}, a = [], i, e;
for (i = 0; e = this[i]; i++) {o[e] = 1};
for (e in o) {a.push (e)};
return a;
}
重复问题的更多答案:
类似问题:
【问题讨论】:
-
@hippietrail 那个较老的问题是关于只查找和返回重复项(我也很困惑!)。我的问题更多是关于为什么当数组中有一个零时这个函数会失败。
-
对于未来的读者,当您开始发现您必须始终通过算法修改数据结构的内容时,(对它们进行排序、删除重复元素等)或搜索其中的元素迭代,可以安全地假设您首先使用了错误的数据结构并开始使用更适合手头任务的数据结构(在这种情况下是哈希集而不是数组)。
-
很久以前我从其他地方复制了代码...但看起来很简单:
o=object,a=array,i=index和e= 嗯,有些东西:P -
只是想指出,很多人建议使用 JavaScript Set 作为解决方案,请谨慎使用,因为 Internet Explorer 不支持它。如果您必须支持 IE,请使用 polyfill。
标签: javascript unique arrays