![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Недотепа
Форумчанин
Регистрация: 18.01.2011
Сообщений: 174
|
![]()
Здравствуйте. Есть код, который работает, но уж больно похож на индусский. Помогите сделать его красивым))
https://jsbin.com/waxugom/edit?js,output Код:
'n' - пустые ячейки 1, 2, 3, и тд - разные отдельные блоки Нужно создать таблицу, чтобы 'n' превратились в пустые ячейки, а блоки 1, 1, 1 в ячейку с colspan="3", 2, 2, 2, 2, 2 в ячейку с colspan="5", и тд Мой код решает эту задачу, но он совсем некрасивый Последний раз редактировалось Parallelogram; 11.02.2023 в 16:12. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,822
|
![]()
У вас цикл до
Код:
Код:
Код:
|
![]() |
![]() |
![]() |
#3 |
Недотепа
Форумчанин
Регистрация: 18.01.2011
Сообщений: 174
|
![]()
p51x,
i >= arr.length нужна для последнего элемента arr[i] != arr[i+1] будет проверяться на всех итерациях кроме последнего, там сработает i >= arr.length иначе ошибку выдаст |
![]() |
![]() |
![]() |
#4 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
![]()
Тогда надо проверять значение i+1, а не i. Цикл for закончится при i == arr.length и это условие всегда будет false
Последний раз редактировалось macomics; 11.02.2023 в 16:01. |
![]() |
![]() |
![]() |
#5 |
Недотепа
Форумчанин
Регистрация: 18.01.2011
Сообщений: 174
|
![]()
Да нееее. arr[i] != arr[i+1] нужен для того, чтобы определить, закончился этот блок или ещё нет. Если следующий элемент тоже будет с тем же значением, то значит блок ещё не закончился. Мы прибавляем mem++ и начинаем заново.
|
![]() |
![]() |
![]() |
#6 |
Недотепа
Форумчанин
Регистрация: 18.01.2011
Сообщений: 174
|
![]()
Алгоритм такой: беру первый элемент и сравниваю его со следующим, если он такой же, то mem++ и continue. Если другой, то записываю colspan=mem и continue начинаю новый блок.
|
![]() |
![]() |
![]() |
#7 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
![]()
Я вам написал только про часть условия с i >= arr.length. У цикла for не будет итерации с таким значением счетчика. А вот при i = arr.length - 1 (последний элемент массива) вы как раз и вылезете за его пределы во второй части условия (arr[i] != arr[i + 1]). Тогда значение arr[i+1] окажется вне массива arr (i+1 = arr.length), а это уже элемент на один дальше конца массива.
|
![]() |
![]() |
![]() |
#8 |
Недотепа
Форумчанин
Регистрация: 18.01.2011
Сообщений: 174
|
![]()
Можно заменить на i == arr.length. Это вообще не играет роли.
Или Вы не запускали скрипт или я совсем ничего не понимаю. Мой код абсолютно рабочий. Мне просто не нравится дублирование кода в цикле. Скорей всего это можно как-то исправить/переписать. Вот об этом я прошу. Вы же предлагаете сломать условие if до нерабочего варианта. |
![]() |
![]() |
![]() |
#9 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
![]()
Что в условии
Код:
Если чтобы оценить программу вам надо ее запустить, тогда добавьте вывод в консоль 4-х значений из цикла: i, i+1, arr[i] и arr[i+1] Дальше оцените сами полученный вывод. P.S. Вам два человека на форуме указывают на одно и тоже место в программе. Но вы продолжаете препираться, вместо того чтобы проверить. add: я за вас сделал вывод, чтобы вы больше не препирались, а прислушались Последний раз редактировалось macomics; 11.02.2023 в 17:26. |
![]() |
![]() |
![]() |
#10 |
Недотепа
Форумчанин
Регистрация: 18.01.2011
Сообщений: 174
|
![]()
Вы правы. Я совсем о другом думал и не видел в упор что мне говорят.
Либо i+1 == arr.length, либо i == arr.length-1. Мне же так и говорили :facepalm: Но всё тлен, это условие не нужно, хоть и правильное. Так как arr[i] != arr[i+1] в последнем элементе сравнивается с undefined и всё равно выполняется корректно. Последний раз редактировалось Parallelogram; 11.02.2023 в 17:35. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
написать функцию, определяющую пол продавца. Используя функцию, вывести продавцов - мужчин | Nuc | SQL, базы данных | 12 | 12.03.2018 10:12 |
В функцию с переменным числом параметроы передать указатели на функцию | Вероника99 | Помощь студентам | 3 | 05.10.2016 15:44 |
Написать функцию «Факториал» и программу, использующую эту функцию для вывода таблицы факториалов. | Rufer | Помощь студентам | 1 | 20.06.2016 12:53 |
[Язык LISP] Используя функцию DEFUN, определить функцию | DemonXZ | Помощь студентам | 0 | 09.06.2013 18:10 |
Описать функцию нахождения расстояния между 2-мя точками на плоскости, заданными своими координатами, и функцию .... | zzz6 | Помощь студентам | 2 | 06.07.2011 08:24 |