Каша в голове получается, если там изначально бульон. По-хорошему, ещё в школе должны были посадить в голову ростки рациональности, и всякие новые знания становились бы удобрением для древа системного мышления.
В тяжелом случае придётся наваливать факты и предположения в кучу, чтобы найти в этой мешанине случайных связей что-то логичное и непротиворечивое, хотя бы для своей точки зрения. Мозг сам по себе ищет причины и следствия, считай структуру, дайте ему пищу.
Отличный пример.
Переменная game не определена в модулях до использования, я уж и не вспомню, насколько глобальной такая переменная становится, давно так не делал. Можно добавить "use strict", чтобы отслеживать такие ошибки.
Противоречивое описание, раздельно и внутри друг друга. Если эти массивы независимы, то и в разметке их следует описать как минимум соседними элементами. Для полноты вопроса пример данных неплохо привести, а там и будет оценена их связь и способ отображения.
Юрий Иванов, точно, data.concat() не изменяет исходный массив, а возвращает новый.
а вот data.push(allArray); сделает вложенность, внимательнее в дальнейшем.
Единственная весомая причина не использовать фреймворк в нынешнее время -- это создание собственного. Если диплом как-то с этим связан, то может и прокатить, иначе отказ от фреймворков контрпродуктивен, а диплом включает и итоговую продуктивность.
Хотя, в экономическом разделе можно показать расчёт труда для знатока фреймворка и ванильного эстета, естественно, в пользу второго.