arr.splice(i, 1); -> удалил элемент из массива
i-- -> декримируешь после удаление потому что, массив уменьшился в длине.
Без него в val попал был элемент через один, а не следующий
Если инпут большой, то лучше использовать textarea
А так, простой перебор инпутов в массиве и проверка атрибута checked
Для удобства поменял названия id, ну там понятно думаю