|
|
1
1371
只合并数组(不删除重复项)
ES5版本使用
|
|
2
533
使用underline.js或lo dash,可以执行以下操作:
|
|
|
3
220
首先连接两个数组,然后只筛选出唯一的项。
http://jsfiddle.net/simo/98622/ 编辑
正如@dmitry建议的(请参阅下面的第二条注释),更明智的解决方案是筛选出
|
|
4
140
这是一个ECMAScript 6解决方案,使用 spread operator 和数组泛型。 目前它只适用于火狐,也可能是Internet Explorer技术预览版。 但是如果你使用 Babel ,你现在可以吃了。
|
|
5
113
ES6
或
或
|
|
|
6
46
使用A Set (ECMAScript 2015),简单如下:
|
|
|
7
33
这里是一个稍微不同的环。利用最新版本的chrome中的一些优化,它是解决两个数组联合的最快方法(chrome 38.0.2111)。 http://jsperf.com/merge-two-arrays-keeping-only-unique-values
while循环:~589k次/秒
一条评论指出,我的一个设置变量导致我的循环领先于其他变量,因为它不需要初始化一个空数组来写入。我同意这一点,所以我重写了测试,甚至在比赛场地,并包括一个更快的选择。 http://jsperf.com/merge-two-arrays-keeping-only-unique-values/52
在这个替代解决方案中,我结合了一个答案的关联数组解决方案来消除
在这里,每个值(i-1)上的双循环的最高答案仍然明显较慢。罗达什仍然做得很好,我仍然会向任何不介意在他们的项目中添加图书馆的人推荐它。对于那些不想这样做的人来说,我的while循环仍然是一个很好的答案,过滤器的答案在这里有一个很强的显示,在我的测试中用最新的淡黄色(44.0.2360)打败了所有人。 退房 Mike's answer 和 Dan Stocker's answer 如果你想加快速度。在浏览了几乎所有可行的答案之后,这些都是迄今为止所有结果中最快的。 |
|
8
31
你只需使用ecmascript 6,
|
|
|
9
16
更好的数组合并函数。 |
|
|
10
15
合并两个数组并删除ES6中的重复项
|
|
|
11
14
就把我的两分钱投进去。
这是一个我经常使用的方法,它使用一个对象作为哈希查找表来进行重复检查。假设散列是O(1),那么它在O(n)中运行,其中n是a.length+b.length。老实说,我不知道浏览器是如何处理散列的,但是它在数千个数据点上运行得很好。 |
|
|
12
14
只需避开嵌套循环(o(n^2)),以及
|
|
13
13
你为什么不用物体?看起来你在模拟一个场景。然而,这并不能维持秩序。
|
|
|
14
8
我的一个半便士:
|
|
|
15
8
简化 simo's answer 把它变成了一个很好的功能。
|
|
16
8
最佳解决方案… 您可以直接在浏览器控制台中点击… 无副本
带副本
如果你不想重复,你可以从这里尝试一个更好的解决方案。- Shouting Code .
试用Chrome浏览器控制台
输出:
|
|
17
6
执行
|
|
18
6
您只需使用underline.js的=> UNIQ :
它会打印出来 [“Vijendra”、“Singh”、“Shakya”] . |
|
|
19
6
它可以用set来完成。
|
|
20
5
新解决方案(使用
用途:
array.prototype.indexof(用于Internet Explorer):
|
|
|
21
5
|
|
|
22
5
这个方法的好处在于性能,一般来说,在处理数组时,您都是链接方法,如过滤器、映射等,因此您可以添加该行,它将使用array1连接并消除array2的重复数据,而不需要引用后面的方法(当您没有链接方法时),例如:
(我不想污染array.prototype,这是尊重这个链的唯一方法——定义一个新的函数会破坏它——所以我认为只有这样才能实现这个目标) |
|
|
23
4
对于ES6,只需一行:
|
|
|
24
3
为了这个…下面是一个单行解决方案:
不太可读,但可能有助于:
|
|
|
25
3
|
|
|
26
2
在Dojo 1.6 +
更新 请参见工作代码。 |
|
|
27
2
合并无限数量的数组或非数组并保持其唯一性:
|
|
|
28
2
假设原始数组不需要重复数据消除,这应该非常快,保持原始顺序,并且不修改原始数组…
用途:
|
|
|
29
2
ES2015的功能方法
遵循功能方法A
总之,关键问题与
前两个排列很容易用一个函数处理。然而,最后两个更复杂,因为你不能处理它们只要你依赖
从这里开始,实现
结果证明
|
|
|
30
2
最简单的方法是使用
第一种方式:
第二种方法(但对用户界面有性能影响):
|
|
|
code-geek · Jquery根据单选按钮选择隐藏或显示文本字段 1 年前 |
|
|
Alex · 在轻量级中同时解构和不解构变量 1 年前 |
|
|
Ângelo Rigo · ReactJS映射:如何迭代[关闭] 1 年前 |
|
|
bairog · 从按属性筛选的对象数组字典中创建值数组 1 年前 |
|
|
lokiuucx · JS对象属性返回未定义,尽管对象属性应该有值 1 年前 |