从数组中删除多次出现的所有元素

pet*_*gan 2 javascript ecmascript-6

在人们认为这与关于删除重复项的Stack Overflow上的所有其他答案相同之前,您可以查看返回的内容而不是我要查看的内容.

我想删除多次出现的所有元素.我尝试过以下方法:

const a = ['Ronaldo', 'Pele', 'Maradona', 'Messi', 'Pele'];

const uniqueArray = a.filter(function(item, pos) {
  return a.indexOf(item) == pos;
})

console.log(uniqueArray)
Run Code Online (Sandbox Code Playgroud)

我希望我uniqueArray成为

['Ronaldo', 'Maradona', 'Messi'];
Run Code Online (Sandbox Code Playgroud)

fca*_*ran 7

简而言之:如果第一次出现的element(indexOf)的位置也是数组(lastIndexOf)中元素的最后位置,则保留该值.

如果索引不等于那么该值是重复的,您可以将其丢弃.

const a = ['Ronaldo', 'Pele', 'Maradona', 'Messi', 
           'Pele', 'Messi', 'Jair', 'Baggio', 'Messi', 
           'Seedorf'];

const uniqueArray = a.filter(function(item, pos) {
  return a.lastIndexOf(item) == a.indexOf(item);
});

console.log(uniqueArray);
/* output:  ["Ronaldo", "Maradona", "Jair", "Baggio", "Seedorf"] */
Run Code Online (Sandbox Code Playgroud)

Codepen演示