2010-11-18 8 views
0

Existe-t-il un moyen de faire correspondre plusieurs tableaux et de supprimer des chaînes similaires?Tableau de correspondance Javascript

array1 = ["apple", "cherry", "strawberry"]; 

array2 = ["vanilla", "chocolate", "strawberry"]; 
+3

Que voulez-vous dire par la même, et dont tableau supprimons vous? Tous les deux? Notez que vous n'avez aucune correspondance exacte dans les tableaux actuels, donc je me demande comment vous définissez similaire. – user113716

+0

Oups, erreur d'orthographe. array1 est l'original, donc supprimez les chaînes correspondantes de array2. – Alex

Répondre

2

Votre question n'est pas très clair alors voici deux solutions:

Compte tenu ["apple", "cherry", "strawberry"] et ["vanilla", "chocolate", "strawberry"] voulez-vous ["apple", "cherry", "strawberry", "vanilla", "chocolate"]:

function combineWithoutDuplicates(array1, array2) { 

    var exists = {}; 
    var unique = []; 

    for(var i = 0; i < array1.length; i++) { 
     exists[array1[i]] = true; 
     unique.push(array1[i]); 
    } 

    for(var i = 0; i < array2.length; i++) { 
     if(!exists[array2[i]]) { 
     unique.push(array2[i]); 
     } 
    } 

    return unique; 
} 

Ou voulez-vous ["vanilla", "chocolate"] (supprime les doublons de array2) :

function removeDuplicates(array1, array2) { 

    var exists = {}; 
    var withoutDuplicates = []; 

    for(var i = 0; i < array1.length; i++) { 
     exists[array1[i]] = true; 
    } 

    for(var i = 0; i < array2.length; i++) { 
     if(!exists[array2[i]]) { 
     withoutDuplicates.push(array2[i]); 
     } 
    } 

    return withoutDuplicates; 
} 
Questions connexes