Proponuje użyć switch-a np. tak, żeby poszczególne polecenia wywoływały odpowiednią "akcję"
[ pełny kod przykładu on-line ]
const value = document.querySelector('#pole-input').value.trim().toLowerCase();
// dostępne polecenia: dodaj, nowy,
// usun(ń) pierwszy, usun(ń) ostatni,
// usun(ń) 1, usun(ń) 2, usun(ń) n-ty
switch (value.split(' ')[0]) {
case 'dodaj':
case 'nowy':
dodajKwadrat();
break;
case 'usun':
case 'usuń':
if (value.includes('pierwszy')) usunKwadrat(0);
else if (value.includes('ostatni')) usunKwadrat(kwadrat.childNodes.length - 1);
else usunKwadrat(parseInt(value.split(' ')[1] ?? 0) - 1); // usuwanie wybranego
break;
}
function dodajKwadrat() {
const ile_kwadraty = kwadrat.childNodes.length;
if (ile_kwadraty >= MAKSYMALNA_KWADRATY) {
alert(`Utworzyłeś maksymalną ilość kwadratów (${MAKSYMALNA_KWADRATY})`);
return;
}
kwadrat.insertAdjacentHTML('beforeend', '<div></div>');
}
function usunKwadrat(indeks) {
if (kwadrat.hasChildNodes()) {
if ((indeks < 0 || indeks > kwadrat.childNodes.length - 1) || isNaN(indeks)) return;
kwadrat.removeChild(kwadrat.childNodes[indeks]);
}
}