相关疑难解决方法(0)

获取JavaScript数组中的所有唯一值(删除重复项)

我有一系列数字,我需要确保它们是唯一的.我在互联网上找到了下面的代码片段,它的工作情况很好,直到数组中的数字为零.我发现这个其他脚本在SO上看起来几乎就像它,但它不会失败.

所以为了帮助我学习,有人可以帮我确定原型脚本出错的地方吗?

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;
}
Run Code Online (Sandbox Code Playgroud)

重复问题的更多答案:

类似的问题:

javascript arrays unique

1273
推荐指数
40
解决办法
122万
查看次数

获取数组中的所有非唯一值(即:重复/多次出现)

我需要检查一个JavaScript数组,看看是否有任何重复的值.最简单的方法是什么?我只需要找到重复的值是什么 - 我实际上并不需要它们的索引或重复它们的次数.

我知道我可以遍历数组并检查匹配的所有其他值,但似乎应该有一个更简单的方法.有任何想法吗?谢谢!

类似的问题:

javascript arrays

397
推荐指数
20
解决办法
55万
查看次数

从哈希数组中过滤重复哈希 - Javascript

我有一系列哈希,像这样:

[{id: "4bf58dd8d48988d110941735", name: "italy"},
 {id: "4bf58dd8d48988d1c6941735", name: "skandi"},
 {id: "4bf58dd8d48988d147941735", name: "diner"},
 {id: "4bf58dd8d48988d110941735", name: "italy"},
 {id: "4bf58dd8d48988d1c4941735", name: "resto"},
 {id: "4bf58dd8d48988d14a941735", name: "vietnam"},
 {id: "4bf58dd8d48988d1ce941735", name: "fish"},
 {id: "4bf58dd8d48988d1c4941735", name: "resto"},
 {id: "4bf58dd8d48988d1c4941735", name: "resto"}]
Run Code Online (Sandbox Code Playgroud)

我想扔掉重复的哈希.设置不起作用,因为哈希是唯一对象.

我感到困难,需要一脚思考.请指教!

javascript arrays hash

10
推荐指数
2
解决办法
492
查看次数

javascript:如何删除数组数组中的重复数组

输入:

[[-1,-1,2],[-1,0,1],[-1,-1,2],[-1,0,1],[-1,-1,2],[-1,0,1],[-1,0,1]]
Run Code Online (Sandbox Code Playgroud)

我想要的输出:

[[-1,-1,2],[-1,0,1]]
Run Code Online (Sandbox Code Playgroud)

任何其他的想法,除了这一个

谢谢

javascript

8
推荐指数
3
解决办法
4809
查看次数

在Array中查找重复数组

给定一个数组数组,识别重复项的有效方法是什么?

var array = [
  [
    11.31866455078125,
    44.53836644772605
  ],
  [                     // <-- Here's the duplicate
    11.31866455078125,
    44.53836644772605
  ],
  [
    11.371536254882812,
    44.53836644772605
  ],
  [
    11.371536254882812,
    44.50140292110874
  ]
]
Run Code Online (Sandbox Code Playgroud)

我一直在研究这个lodash作为一个被接受的依赖,我得到如何使用_.uniqWith和返回"唯一"列表_.isEqual:

_.uniqWith(array,_.isEqual)
Run Code Online (Sandbox Code Playgroud)

将给出列表的"唯一"版本:

[ 
    [ 11.31866455078125,  44.53836644772605 ],
    [ 11.371536254882812, 44.53836644772605 ],
    [ 11.371536254882812, 44.50140292110874 ]
]
Run Code Online (Sandbox Code Playgroud)

但不仅仅是报告独特的元素,我只需要复制的元素,理想情况下是第一次出现的索引.

lodash通过我缺少的某些方法组合,这实际上是否涵盖在库中?或者我只需要编写循环来比较元素.

可能只是在这方面过度紧张,所以对这个问题的新目光会很受欢迎.

如果有适合的库方法,尝试不重写函数,所以我基本上坚持:

  1. 仅返回重复或至少与"唯一列表"的比较差异.

  2. 基本上识别数组中数组的"索引".虽然我认为_.isEqual一旦识别出重复的项目,就可以减少过滤器.

还试图避免创建一个对象Hash/Map并在这里计算键的出现次数,或者至少不作为单独的对象,以及可以在功能上"在线"完成的事情.

javascript arrays underscore.js lodash

5
推荐指数
1
解决办法
619
查看次数

标签 统计

javascript ×5

arrays ×4

hash ×1

lodash ×1

underscore.js ×1

unique ×1