var select1 = document.getElementById('select1');
var select2 = document.getElementById('select2');
var array = [];
let sel1 = false;
function myFunct1() {
var one = select1.options[select1.selectedIndex].value;
if(array.length === 1 && !sel1) array.unshift(one);
else array.splice(0,1,one);
console.log(array);
sel1 = true;
}
function myFunct2() {
var two = select2.options[select2.selectedIndex].value;
array.splice(sel1, 1, two);
console.log(array);
}
function myFunct3() {
var three = select3.options[select3.selectedIndex].value;
}
<select id = 'select1' onchange = 'myFunct1()'>
<option disabled selected value> -- select an option -- </option>
<option value = 'Dog1'>Dog</option>
<option value = 'Cat1'>Cat</option>
<option value = 'Bear1'>Bear</option>
</select>
<select id = 'select2' onchange = 'myFunct2()'>
<option disabled selected value> -- select an option -- </option>
<option value = 'Dog2'>Dog</option>
<option value = 'Cat2'>Cat</option>
<option value = 'Bear2'>Bear</option>
</select>
<select id = 'select3' onchange = 'myFunct3()'>
<option disabled selected value> -- select an option -- </option>
<option value = 'Dog3'>Dog</option>
<option value = 'Cat3'>Cat</option>
<option value = 'Bear3'>Bear</option>
</select>
У меня есть этот метод, который работает именно так, как я хочу, с двумя меню выбора. Таким образом, если вы выбираете два раза подряд со второго, выберите длину массива, которая никогда не будет больше единицы, пока вы не выберете первый. Теперь я хочу включить третье меню выбора. Пожалуйста, помогите мне сделать эту работу. Я знаю, что мог бы объединить их все в одну функцию и не иметь дело с этими проблемами, но для своего использования я не могу этого сделать. Основным условием является то, что в массиве никогда не бывает нескольких выборок из одного и того же меню выбора и никогда не должно быть пустых позиций в массиве, которые все еще учитываются в его длине. поэтому массив [undefined, Cat2] не встречается.