JavaScript Цикл во вложенном массиве (newb ie) - PullRequest
0 голосов
/ 30 января 2020

Я новичок после просмотра видео с веб-разработчиком Botcamp от Colt Steele на Udemy и решил пойти дальше на JavaScript. Желая узнать больше о запросах лучше через вложенные массивы. Сегодня утром я написал приведенный ниже синтаксис и хочу посмотреть, смогу ли я использовать l oop, который я сделал, чтобы хранить «числа», относящиеся к каждому игроку, в переменной после l oop? Дайте мне знать, что вы, профессионалы, думаете! Я также открыт для изучения любого метода или курса, который вы бы порекомендовали мне для дальнейшего изучения моего навыка кодирования!

Функция ниже выводит только каждый аргумент из массива, объявленного в переменной Players. , Я хочу использовать этот результат только для целевого числа в "var" после цикла. Извините, если это не имеет никакого смысла, но я чувствую, что должен быть способ сделать это, ха-ха

var players = [[["Lebron James","23"],["Kevin Durant","35"]],
           [["Dwayne Wade","3"],["Russell Westbrook","0"]]];

function loop(){
  for(var i=0; i<players.length;i++){
    for (var k=0; k<players[i].length; k++){
    for (var m=0; m<players[i][k].length; m++){
          console.log(players[i][k][m])
      }
    }
  }
}

Ответы [ 2 ]

0 голосов
/ 30 января 2020

Хотя это может быть немного впереди, это все еще может быть полезно для вас позже. Массивы имеют множество методов, которые l oop на все элементы, которые находятся внутри него. Каждый метод имеет свою цель и результат.

Я пытался сделать его максимально коротким и использовал flatMap и map, чтобы сделать его работа.

const numbers = players.flatMap(group => group.map(player => player[1]));

Или более подробно написано:

const numbers = players.flatMap(function(group) {
  return group.map(function(player) {
    return player[1];
  });
});

map перебирает все элементы в массиве и создает новый массив с тем же количеством ключей, но с новые значения, которые были возвращены функцией обратного вызова.

flatMap делает то же самое, но по существу является комбинацией map и flat. flat может превратить массив с, например, [['hey'],['bye']] в ['hey', 'bye']. Удаление уровней глубины массива и получение всех значений внутри одного массива.

Оба метода возвращают свои значения в новый массив. Таким образом, строка ниже извлекает значения из массива и сохраняет их в переменной number. Или постоянный в этом случае.

Продолжайте практиковаться и попробуйте все методы. Они могут действительно помочь сделать работу с массивами намного проще. Проверьте документы MDN , чтобы увидеть, какие варианты у вас есть.

0 голосов
/ 30 января 2020

Вы просто хотите получить числа из этого массива? Тогда вы почти получили его.

Объявите пустой массив const numbers = [], а затем добавьте число во внутреннюю l oop. Элемент players[i][k] является массивом [name, number] для игрока. Так что players[i][k][1] это номер, который вы хотите. Pu sh, что в ваш массив чисел

function loop(){
  for(var i=0; i<players.length;i++){
    for (var k=0; k<players[i].length; k++){
       numbers.push(players[i][k][1])
    }
  }
}

Вместо for(...) вы можете использовать forEach l oop в массиве

players.forEach(group => {
   group.forEach(player => {
      numbers.push(player[1])
   })
})

Надеюсь, что помогает!

...