Группировка данных из нескольких массивов

Beginner

This tutorial is from open-source community. Access the source code

Введение

В этом практическом занятии мы изучим, как группировать элементы массива в зависимости от их позиции в исходном массиве. Для этого мы будем использовать функцию zip(), которая принимает несколько массивов и возвращает новый массив, содержащий подмассивы элементов из каждого входного массива, сгруппированные по их позиции. Это полезный метод при обработке и анализе данных, который можно использовать для объединения данных из нескольких источников в одну структуру данных для дальнейшего анализа.

Группировка элементов массива

Для группировки элементов массивов в зависимости от их позиции в исходных массивах используйте функцию zip, представленную ниже.

  • Откройте Терминал/SSH и введите node, чтобы начать практиковаться в написании кода.
  • Функция zip использует Math.max() и Function.prototype.apply(), чтобы получить самый длинный массив из аргументов.
  • Она создает массив с такой длиной в качестве возвращаемого значения и использует Array.from() с функцией отображения, чтобы создать массив сгруппированных элементов.
  • Если длины массивов аргументов различны, вместо отсутствующего значения используется undefined.
const zip = (...arrays) => {
  const maxLength = Math.max(...arrays.map((x) => x.length));
  return Array.from({ length: maxLength }).map((_, i) => {
    return Array.from({ length: arrays.length }, (_, k) => arrays[k][i]);
  });
};

Пример использования:

zip(["a", "b"], [1, 2], [true, false]); // [['a', 1, true], ['b', 2, false]]
zip(["a"], [1, 2], [true, false]); // [['a', 1, true], [undefined, 2, false]]

Резюме

Поздравляем! Вы завершили практическое занятие по группировке элементов массива. Вы можете выполнить больше практических занятий в LabEx, чтобы улучшить свои навыки.