2016-10-23 5 views
0

Предположим, что у меня есть 2 разных массива: один со всеми алфавитами от (от 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 **, ** witoute **? => прочитайте его вслух. – 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

Спасибо! Не возражаете ли вы объяснить, что происходит здесь, поэтому я могу научиться литью. Я отчуждаю нижние петли, но что происходит в тесте «если»? – celllaa95

+0

'if (b.indexOf (a [k]) == -1)' check 'a [k]' в массиве 'b'. Он возвращает индекс 'a [k]' в 'b', если он найден, или' -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); 
Смежные вопросы