Проблема в строке `password += renderPasswordSymbol(choice)`. Функция `renderPasswordSymbol()` возвращает значение типа `undefined`, если символ не выбран. Поэтому, если в `randomChoice` нет выбранных символов, то строка `password += renderPasswordSymbol(choice)` будет добавлять к `password` значение `undefined`.
Чтобы исправить это, вы можете использовать оператор `||` для проверки значения `renderPasswordSymbol()`. Оператор `||` возвращает первое значение, которое не равно `undefined`, или второе значение, если первое значение равно `undefined`. В этом случае вы можете использовать оператор `||` следующим образом:
```
password += renderPasswordSymbol(choice) || ""
```
Это заставит строку `password` добавлять к `password` пустое значение, если `renderPasswordSymbol()` возвращает значение `undefined`.
Вот исправленный код:
```
function generatePassword() {
let i = 0;
passwordsList.querySelectorAll("li").forEach(el => {
el.remove()
})
while(i != 10) {
const randomChoice = []
let password;
for(let input of inputs.querySelectorAll("input:checked")) {
randomChoice.push(
input.id )
}
let a = 0
while(a != Number(rangeInput.value)) {
var choice = randomChoice[Math.floor(Math.random()*randomChoice.length)]
password += renderPasswordSymbol(choice) || ""
a++;
}
const passwordTamplate = `<li class="password__item">%password%</li>`
const finalPassword = passwordTamplate.replace("%password%", password)
passwordsList.insertAdjacentHTML("beforeend", finalPassword)
i++;
}
}
```
Теперь пароли должны генерироваться без значения `undefined` в начале.
Это сам код:
const finalPassword = passwordTamplate.replace("%password%", password)
passwordsList.insertAdjacentHTML("beforeend", finalPassword)
i++;
}
}
passwordLength.oninput = function() {
rangeInput.value = passwordLength.value;
}
btnAdd.addEventListener("click", () => {
if(inputs.querySelectorAll("input:checked").length === 0) {
alert("Выберите один из пунктов.")
return
}
if(Number(rangeInput.value) < 6 || Number(rangeInput.value) > 42) {
alert("Длина пароля может быть от 6 да 42 символов.")
return
}
else {
generatePassword()
}
})