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;
我有一个数组var k={"Eu","PU","MS","EU","PU"}
,我只需要EU PU MS
,因为EU
和PU
正在重复。如何删除数组中的重复元素。
答案 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只保留一个相同的元素。
所有大写的解决方案。
var k = ["EU", "PU", "MS", "EU", "PU"];
k = [... new Set(k)];
console.log(k);
&#13;
混合案例的解决方案。
var k = ["Eu", "PU", "MS", "EU", "PU"];
k = [... new Set(k.map(a => a.toUpperCase()))];
console.log(k);
&#13;
答案 2 :(得分:0)
哈希表是一个很好的工具。这是一些伪代码:
如果您使用支持集合的语言,则更容易 - 只需为阵列中的每个元素更新一次。
答案 3 :(得分:0)
使用Array.forEach
和Array.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)
您可以对数组进行排序并推送非匹配元素。
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;
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;
答案 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;
}
}