Было бы намного элегантнее создать одну запись localStorage, представляющую ваши сохраненные значения, а не загрязнять LS множеством записей для каждого поля. Я бы порекомендовал что-то вроде этого:
function save() {
const selects = document.querySelectorAll('select');
// select other element types
// ...
const selectValues = [...selects].map(select => select.value);
const textValues = [...textInputs].map(textInput => textInput.value);
const sliderValues = [...sliderInputs].map(sliderInput => sliderInput.value);
const savedObj = { selectValues, textValues, sliderValues };
localStorage.savedFormValues = JSON.stringify(savedObj);
}
Таким образом, вы создаете только одну запись в localStorage, и каждый тип записи довольно различен. Затем, чтобы получить значения, просто сделайте то же самое в обратном порядке:
function populate() {
const selects = document.querySelectorAll('select');
// ...
const { selectValues, textValues, sliderValues } = JSON.parse(localStorage.savedFormValues);
selectValues.forEach((selectValue, i) => selects[i].value = selectValue);
// ...