Вы можете использовать общую функцию для открытия модели и закрытия модели, например:
function openmodel (i) {
model[i].style.display = 'block'
}
function clickoutside(e, i){
if(e.target == modal[i])
modal[i].style.display = 'none';
}
И изменить слушателя событий, например:
modalbtn[i].addEventListener('click', function () {
openmodel(i)
})
window.addEventListener('click', function (e) {
clickoutside(e, i)
})
И вместо этого
eval('closebtn'+i.addEventListener('click', eval('closemodal'+i)))
Вы можете использовать:
var closebtn = document.getElementsByClassName('closebtn')
for (let i = 0; i < closebtn.length; i++) {
closebtn[i].addEventListener('click', function () {
closeModel(i)
})
}
и изменять функцию closeModel, например:
function closemodal(i){
modal[i].style.display = 'none';
}