2010-09-24 17 views
0

Ainsi, par exemple, j'ai:Comment sélectionner des nombres inconnus dans javascript?

tableau

(2, 1, 3, 4, 5, 6, 7)

et Je sais déjà (2, 1, 3)

Comment devrais-je obtenir (4, 5, 6, 7) si je sais que tout numbe rs existe 1-7 et les chiffres ce que je sais déjà

Je veux un tableau avec les chiffres que je ne connais pas encore.

Désolé si cela semble stupide: |

+1

que voulez-vous dire 1,2,3? De quoi parlons-nous exactement? '' ou ... juste des morceaux aléatoires de texte sur la page? donnez-nous un échantillon HTML. – mpen

+0

Sont-ils simplement dispersés arbitrairement dans le document ou sont-ils des nœuds frères? Cela fait une énorme différence. –

+0

Cela peut être n'importe quoi, dans ce cas les nombres simples sont parfaits aussi. Editer la question – Adam

Répondre

0

Si A = B = (2, 1, 3) et (1, 2, 3, 4, 5, 6, 7)

Alors voulez-vous les éléments hors du commun (à savoir, que ce soit des éléments non existant)? Vous pouvez essayer ceci:

//note: could be improved - wrote it quickly 
function uncommon(a, b) { 

    var map = {}; 
    var alreadyAdded = {}; 
    var uncommonElements = []; 

    var arrays = (a.length > b.length) ? 
        {first: b, second: a} : 
        {first: a, second: b}; 

    for(var i = 0; i < arrays.first.length; i++) { 
     map[arrays.first[i]] = true; 
    } 

    for(var i = 0; i < arrays.second.length; i++) { 
     if(!map[arrays.second[i]]) { 
      uncommonElements.push(arrays.second[i]); 
      alreadyAdded[arrays.second[i]] = true; 
     } 
    } 

    for(var i = 0; i < arrays.first.length; i++) { 
     if(!map[arrays.second[i]] && !alreadyAdded[arrays.first[i]]) { 
      uncommonElements.push(arrays.first[i]); 
     } 
    } 

    return uncommonElements; 
} 

Notez également que si vous aviez:

A = B = (2, 1, 3, 9) et (1, 2, 3, 4, 5, 6, 7), vous obtiendrez (2, 1, 3, 9) dire, les éléments ne se trouvent pas dans l'une.