Печать алфавитов из массива

#javascript #arrays

#javascript #массивы

Вопрос:

Давайте предположим, что у меня есть 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>
  

Комментарии:

1. Что это за alfabeth ?

2. Чтобы вывести это, просто выполните console.log(a) и откройте консоль. Однако я предполагаю, что это a - b не делает того, что вы думаете, поскольку это массивы

3. @evolutionxbox, что такое gonne , что такое exempal , witoute ? => прочитайте это вслух.

4. @Kaiido Это «пример» и «без», я думаю. celllaa95, должно быть, испытывает трудности с английским. Давайте просто поможем ему исправить орфографию вместо того, чтобы указывать на это 🙂

5. @suzo, извините, у меня ушло 10 секунд на написание этого комментария и 7 минут на исправление орфографии

Ответ №1:

Просто используйте map и filter, например :

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

Ответ №2:

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

Ответ №3:

Это то, что вам нужно.

 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' ]
  

Комментарии:

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

2. if(b.indexOf(a[k]) == -1 ) Проверка a[k] в b массиве. Возвращает индекс a[k] in b , если он найден или -1 иным образом. Подробнее о indexOf здесь MDN

3. я 2, люди должны проголосовать за это, потому что это именно то, что мне было нужно

4. Думаю, теперь я это сделал. Извините, я действительно новичок в этом сообществе

5. Я рад, что это помогло вам.