Введение
В этом практическом занятии мы изучим, как группировать элементы массива в зависимости от их позиции в исходном массиве. Для этого мы будем использовать функцию 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, чтобы улучшить свои навыки.