2016-10-23 3 views
0

Nehmen wir an, ich habe 2 verschiedene Arrays, eines mit allen Alphabeten von (A bis Z) groß geschrieben. Und ein anderes Array, wo ich Buchstaben aus den Alphabeten eingeben, zum Beispiel: {"K","C","L"}.Drucken von Alphabeten aus einem Array

Ich möchte die angegebenen Buchstaben oben aus dem ersten Array extrahieren.

Zum Beispiel, wenn secondArr = [K,C,L] dann wäre der Ausgang [A, B, D, E, F, G, H, I, J, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z] sein

Hier ist, was ich versucht habe:

<script> 

    window.onload = run; 

    function run() { 

     a = []; 
     for(i = 65; i <= 90; i++) { 
     a[a.length] = String.fromCharCode(i); // A-Z 
     } 
     b = []; 
     for(j = 70; j <= 75; j++) { 
     b[b.length] = String.fromCharCode(j); // F-K 
     } 

     if(a !== b) { 
     a - b; 
     } 

    } 

    </script> 
+0

Was ist ** alfabeth **? – evolutionxbox

+0

Um es auszugeben, tun Sie einfach 'console.log (a)' und öffnen Sie die Konsole. Ich vermute jedoch, dass 'a-b' nicht das tut, was Sie denken, denn Arrays sind – adeneo

+4

@evolutionxbox, was ist ** gonne **, was ist ** eksempal **, ** witoute **? => lies es laut vor. – Kaiido

Antwort

-2

Dies ist, was Sie brauchen.

a = []; 
b = []; 
c = []; 
    for(i = 65; i <= 90; i++) { 
     a.push(String.fromCharCode(i)); // A-Z 
     } 

    for(j = 70; j <= 75; j++) { 
     b.push(String.fromCharCode(j)); // F-K 
     } 

//option 1, you can loop through like this 
     for (var k = 0; k < a.length; k++){ 
     if(b.indexOf(a[k]) == -1){ 
      c.push(a[k]); 
     } 
     } 
     console.log(c); 

//option 2, you can use the filter function like so 
c = a.filter(function(r){ 
    return b.indexOf(r) == -1; 
    }); 
console.log(c) 



//output will be [ 'A', 'B', 'C', 'D', 'E', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' ] 
+0

Vielen Dank! Willst du etwas über das, was hier passiert, erklären, damit ich ein bisschen lernen kann? Ich unterbreche die Schleifen, aber was passiert im "Wenn" -Test? – celllaa95

+0

Das 'if (b.IndexOf (a [k]) == -1)' '' a [k] 'im' b'-Array überprüfen. Es gibt den Index von a [k] 'in" b "zurück, wenn gefunden, oder" -1 "andernfalls. Lesen Sie mehr über 'indexOf 'hier [MDN] (https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf) – Abk

+0

Ich frage mich, warum diese Antwort nicht nützlich ist. – Abk

-1
a = []; 
b = []; 
    for(i = 65; i <= 90; i++) { 
    a[a.length] = String.fromCharCode(i); // A-Z 
    } 
    for(j = 70; j <= 75; j++) { 
    b[b.length] = String.fromCharCode(j); // F-K 
    } 
    a = a.filter(function(val) { 
     return b.indexOf(val) == -1; 
    }); 
1

Verwenden Sie einfach Karte und Filter wie:

var input = ["K", "C", "L"]; 
var output = Array(26).fill(0).map((x, i) => String.fromCharCode(i + 65)).filter(x => input.indexOf(x) == -1); 
console.log(output); 
Verwandte Themen