删除数组中的重复元素

时间:2016-09-16 05:51:47

标签: javascript



for(var i=0;i<d.length;i++)
{
  current=d[i].businessunits;
  arraynew.push(current);//array new like this {0:EU;1:PU;2:MS;3:EU;4:PU}
}
&#13;
&#13;
&#13;

我有一个数组var k={"Eu","PU","MS","EU","PU"},我只需要EU PU MS,因为EUPU正在重复。如何删除数组中的重复元素。

8 个答案:

答案 0 :(得分:2)

在推送值之前,元素已存在于数组中。

for(var i=0;i<d.length;i++)
{
  current=d[i].businessunits;
  if(arraynew.indexOf(current) === -1) arraynew.push(current);//array new like this {0:EU;1:PU;2:MS;3:EU;4:PU}
}

答案 1 :(得分:1)

使用ES6,您可以使用Set,因为set只保留一个相同的元素。

所有大写的解决方案。

&#13;
&#13;
var k = ["EU", "PU", "MS", "EU", "PU"];

k = [... new Set(k)];
console.log(k);
&#13;
&#13;
&#13;

混合案例的解决方案。

&#13;
&#13;
var k = ["Eu", "PU", "MS", "EU", "PU"];

k = [... new Set(k.map(a => a.toUpperCase()))];
console.log(k);
&#13;
&#13;
&#13;

答案 2 :(得分:0)

哈希表是一个很好的工具。这是一些伪代码:

  1. 迭代数组并将每个项目作为键添加到哈希表中(如果它尚不存在)
  2. 返回哈希表中的键列表。
  3. 如果您使用支持集合的语言,则更容易 - 只需为阵列中的每个元素更新一次。

答案 3 :(得分:0)

使用Array.forEachArray.indexOf函数的简单解决方案:

var arr = ["Eu","PU","MS","EU","PU"], result = [];

arr.forEach(function(v){
    result.indexOf(v.toUpperCase()) === -1 && result.push(v.toUpperCase());
});

console.log(result);

答案 4 :(得分:0)

适用于所有浏览器:

myArray.filter(function (x, i, a) { 
    return a.indexOf(x) == i; 
});

用于modren浏览器

[...new Set(myArray)]

答案 5 :(得分:0)

在新数组中添加元素之前进行代码检查。新数组不包含重复元素

for(var i=0;i<d.length;i++)
{
   current=d[i].businessunits;
   if(arraynew.indexOf(current) === -1) // if new array not contains element add in new array 
      arraynew.push(current);
}

答案 6 :(得分:0)

您可以对数组进行排序并推送非匹配元素。

排序+ array.reduce

&#13;
&#13;
var a = ["EU", "PU", "MS", "EU", "PU"];
var r = [];
a.sort().reduce(function(p,c){
  if(p!==c) r.push(c)
  return c;
}, '');

console.log(r)
&#13;
&#13;
&#13;

排序+为

&#13;
&#13;
var a = ["EU", "PU", "MS", "EU", "PU"];
var r = [a[0]];
a.sort()

for(var i = 0; i<a.length -2; i++){
    if(a[i] !== a[i+1]) r.push(a[i+1])
}
console.log(r)
&#13;
&#13;
&#13;

答案 7 :(得分:0)

简易解决方案

var checkDuplicateObject = {},arraynew = [];
for(var i=0;i<d.length;i++)
{
   if(checkDuplicateObject(d[i].businessunits)){
   }else{
    var current = d[i].businessunits;
    arraynew.push(current);  
    checkDuplicateObject[d[i].businessunits] = true;
  }
}