Значения от чекбоксов в строчку через запятую и последний союз "и"
есть 3 класса с чекбоксами. На данный момент класс .sar нужно изменить, у него постоянно ставится запятая, а нужно чтобы только если идет перечисление и в конце не запятую, а союз и. На пример: модуль 1, модуль 2, модуль 3 и модуль 5. Подскажите как реализовать, в классе .model запятые нормально ставятся, а в .sar всего 1 чекбокс.
<section><input type="checkbox" class="checkbox-toggler type" data-target="list-item_1-12" value="М"><b>М</b> — ТЕКСТ.
</section>
<section><input type="checkbox" class="checkbox-toggler type" data-target="list-item_1-13" value="П"><b>П</b> — ТЕКСТ.</section>
<fieldset>
<legend><span style="font-size:25px">Выберите модуль</span></legend>
<input type="checkbox" class="checkbox-toggler model" data-target="list-item_1-14" value="модулем 1"><b>ППП</b> — модуль 1.<br> <input type="checkbox" class="checkbox-toggler model" data-target="list-item_1-15" value="модулем 2"><b>ААА</b> — модуль 2.<br>
<input type="checkbox" class="checkbox-toggler model" data-target="list-item_1-16" value="модулем 3"><b>ВВВ</b> — модуль 3<br>
<input type="checkbox" class="checkbox-toggler model" data-target="list-item_1-17" value="модулем 4"><b>ООО</b> — модуль 4.<br>
<input type="checkbox" class="checkbox-toggler sar" data-target="list-item_1-23" value="модулем 5"><b>МММ</b> — модуль 5.
</fieldset></div>
var polygraphs = document.querySelectorAll('.polygraph');
polygraphs.forEach(function(polygraph){
var fieldset = polygraph.querySelector('fieldset');
polygraph.addEventListener('click', function(e){
var target = e.target;
if(target.tagName === 'INPUT'){
var additionalName = polygraph.querySelector('.additionalName');
additionalName.innerText = "";
var checkedTypes = document.querySelectorAll('.type:checked');
checkedTypes.forEach(function(elem){
additionalName.innerText +=" "+elem.value;
});
var checkedModels = fieldset.querySelectorAll('.model:checked');
if(checkedModels.length === 4){
additionalName.innerText +="+";
} else
{
checkedModels.forEach(function(elem, index){
additionalName.innerText +=(index === 0 ? " с " : ", ")+elem.value;
});
}
}
var checkedTypes = document.querySelectorAll('.sar:checked');
checkedTypes.forEach(function(elem){
additionalName.innerText +=(elem === 0 ? " с " : ", ")+elem.value;
});
});
});