Пусть у нас дан вот такой одномерный массив:
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
Пусть теперь мы хотим сделать из него двухмерный
массив с 4
-мя элементами в каждом
подмассиве. После применения функции convertArr
у нас получится следующий двухмерный массив:
let arr = [[1, 2, 3, 4], [5, 6, 7, 8], [9]];
Как вы видите, в последнему подмассиву не
хватило элементов и в нем оказалось только
число 9
. Если передать такой двухмерный
массив в функцию createTableByArr
,
то она создаст неправильную таблицу - в последнем
ряду таблицы будет не четыре td
, а один.
Для решения проблемы сделаем функцию normalizeArr
,
которая первый параметром будет принимать
двухмерный массив, вторым параметром - количество
элементов в подмассиве, а третьим - заполнитель.
Своим результатом функция должна возвращать "нормализованный" массив: массив, последний элемент которого будет содержать нужное количество элементов. Если этих элементов изначально было меньше, чем нужно функция будет добавлять нужное количество элементов-заполнителей.
Смотрите пример работы функции:
let arr = [[1, 2, 3, 4], [5, 6, 7, 8], [9]];
// выведет [[1, 2, 3, 4], [5, 6, 7, 8], [9, '-', '-', '-']]:
console.log(normalizeArr(arr, 4, '-'));
Тогда код для создания таблицы из одномерного массива станет выглядеть так:
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
let cols = 4;
let twoDimArr = convertArr(arr, cols);
let normalTwoDimArr = normalizeArr(twoDimArr, cols, '');
let table = createTableByArr(normalTwoDimArr);
Реализуйте описанную функцию normalizeArr
.
Потестируйте ее работу.
Дан следующий массив:
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
С помощью комбинаций функций createTableByArr
,
normalizeArr
и convertArr
создайте
из приведенного массива таблицу размером
5
колонок. Добавьте созданную таблицу
в какой-нибудь див.