我需要组合2个简单的数组并删除重复项

时间:2013-08-20 18:45:46

标签: javascript arrays

我有2个简单的数组需要组合和排序,很容易。但是需要删除重复项。

oldProgrammers = new Array('Rob', 'Neek', 'Lisa', 'Susan');
newProgrammers = new Array('Brett', 'John', 'Tom', 'Lisa');

allProgrammers = oldProgrammers.concat(newProgrammers).sort();

allProgrammers.forEach(function(arrEl){
    alert(arrEl);
})

我怎么能做到这一点无能为力?!

2 个答案:

答案 0 :(得分:2)

您可以利用字典数据结构

memo = {};
oldProgrammers.map(function(i){memo[i] = 1;});
newProgrammers.map(function(i){memo[i] = 1;});
allProgrammers = Object.keys(memo);

map()可从Javascript 1.8获得,Object.keys()应在Chrome 5之后可用。

但是所有 真正的 浏览器都支持它:)

答案 1 :(得分:0)

您可以将它们全部混合在一起(并在运行中对它们进行排序),然后使用http://underscorejs.org/#uniq

进行操作
  

uniq_.uniq(array,[isSorted],[iterator])别名:unique

     

使用===生成数组的无副本版本,以测试对象相等性。如果您事先知道数组已排序,则为isSorted传递true将运行更快的算法。如果要根据转换计算唯一项,请传递迭代器函数。