2016-10-23 72 views
0

讓我們假設我有兩個不同的數組,其中一個使用大寫字母(A到Z)中的所有字母。另一個數組,我從字母輸入字母,例如:{"K","C","L"}從數組中打印字母

我想從第一個數組中提取指定的字母。

例如,如果secondArr = [K,C,L]那麼輸出將是[A, B, D, E, F, G, H, I, J, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z]

這裏是我試過:

<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

這是什麼** ** alfabeth? – evolutionxbox

+0

要輸出它,只需執行'console.log(a)'並打開控制檯。我猜,雖然'a - b'不會做你認爲它做的事,看到這些是數組 – adeneo

+4

@evolutionxbox,什麼是** gonne **,什麼是** eksempal **,**同伴**? =>大聲讀出來。 – Kaiido

回答

-2

這是你所需要的。

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

謝謝!你是否願意解釋一下這裏發生的事情,所以我可以學習一個littel。我非常喜歡這些循環,但是在「if」測試中會發生什麼? – celllaa95

+0

'b'數組中的'if(b.indexOf(a [k])== -1)'檢查'[k]'。它返回'b'中'a [k]'的索引,否則返回'-1'。在這裏閱讀更多關於'indexOf' [MDN](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf) – Abk

+0

我想知道爲什麼這個答案沒有用。 – 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

只需使用地圖和過濾器,如:

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);