Avec un tableau ['0','1','1','2','3','3','3']
, le résultat devrait être ['0','1','2','3']
.
Réponses
Trop de publicités?Si vous souhaitez maintenir l'ordre:
arr = arr.reverse().filter(function (e, i, arr) {
return arr.indexOf(e, i+1) === -1;
}).reverse();
Car il n'y a pas de reverse indexof, j'inverse la matrice, de filtrer les doublons, puis de le ré-inverser la tendance.
La fonction de filtre des regards pour toute occurrence de l'élément après l'indice actuel (avant dans le tableau d'origine). Si on en trouve une, il jette de cet élément.
Edit:
Sinon, vous pouvez utiliser lastindexOf (si vous ne se soucient pas de l'ordre):
arr = arr.filter(function (e, i, arr) {
return arr.lastIndexOf(e) === i;
});
Cela permet de garder des éléments uniques, mais seule la dernière occurence. Cela signifie que ['0', '1', '0'] devient ['1', '0'], pas ['0', '1'].
Avec des underscorejs
_.uniq([1, 2, 1, 3, 1, 4]); //=> [1, 2, 3, 4]