Le premier est une méthode plus conventionnelle
Idée:
1. Construisez un nouveau résultat de stockage de tableau
2. Prenez un élément du tableau d'origine dans le cycle, comparez avec le tableau avec ce cycle d'élément avec le résultat de cet élément
3. S'il n'y a pas un tel élément dans le tableau de résultat, il est stocké dans le tableau
Copier le code du code comme suit:
Array.prototype.Unique1 = fonction () {
var res = [ce [0]];
pour (var i = 1; i <this.length; i ++) {
var répétitif = false;
pour (var j = 0; j <res.length; j ++) {
if (this [i] == res [j]) {
Répéter = true;
Casser;
}
}
if (! répéter) {
res.push (this [i]);
}
}
Return res;
}
Var arr = [1, 'a', 'a', 'b', 'd', 'e', 'e', 1, 0]
Alerte (arr.Unique1 ());
La deuxième méthode est plus efficace que la méthode ci-dessus
Idée:
1. Triez d'abord le tableau d'origine
2. Vérifiez si le premier élément du tableau d'origine est le même que le dernier élément du tableau de résultat.
3. Si différent, enregistrez l'élément dans le tableau de résultat
Copier le code du code comme suit:
Array.prototype.Unique2 = fonction () {
this.sort (); // trier d'abord
var res = [ce [0]];
pour (var i = 1; i <this.length; i ++) {
if (this [i]! == res.length -1]) {
res.push (this [i]);
}
}
Return res;
}
Var arr = [1, 'a', 'a', 'b', 'd', 'e', 'e', 1, 0]
Alerte (arr.Unique2 ());
La deuxième méthode aura également certaines limites, car le tri avant le retour, le dernier résultat de retour du dernier retour est également trié. Si l'ordre du tableau est nécessaire pour ne pas modifier l'ordre, cette méthode ne peut pas être prise.
La troisième méthode (recommandée)
Idée:
1. Créez un nouveau résultat de stockage de tableau
2. Créez un objet vide
3. Lorsque le cycle, retirez un élément et l'objet à chaque fois pour le comparer.
Remarque: Quant à comparer, prenez un élément du tableau d'origine, puis accédez à cet attribut dans l'objet.
Copier le code du code comme suit:
Array.prototype.Unique3 = fonction () {
var res = [];
var json = {};
for (var i = 0; i <this.length; i ++) {
if (! json [ce [i]]) {
res.push (this [i]);
JSON [ce [i]] = 1;
}
}
Return res;
}
var arr = [112,112,34, «bonjour», 112,112,34, «bonjour», «str», «str1»];
Alerte (arr.Unique3 ());