Функция находит, какой символ персонажа пользователь сравнивает, основываясь на ответах на мои вопросы. Мой код сейчас очень неэффективен для нескольких меню выбора! Возможно, объект, который принимает все selectmenus в html и позволяет мне назначать значения массива на основе выбранного индекса selectmenu.Есть ли способ вытащить выбранный индекс выбранного меню в моем html, чтобы добавлять значения в разные массивы по моему выбору. Alot of code for 1 select menu
function onSelectMenuBlur() {
"use strict";
/*list of arrays that will be added to when the user selects an option in a selectmenu.*/
var rickArray = [];
var shaneArray = [];
var bobArray = [];
var carolArray = [];
var lArray = [];
var sm = document.getElementById("selectmenu");
. Функция обмена, которая определяет, какой массив будет добавлен в зависимости от параметра, выбранного в меню выбора. Эта функция добавит значение массива 1 к массиву. Похоже на неэффективный способ, особенно с несколькими selectmenus!
sm.onchange = function() {
if(sm.selectedIndex + 1 === 1) {
rickArray.push(1);
shaneArray.pop();
bobArray.pop();
carolArray.pop();
lArray.pop();
alert(rickArray.length);
}
else if(sm.selectedIndex + 1 === 2) {
shaneArray.push(1);
rickArray.pop();
bobArray.pop();
carolArray.pop();
lArray.pop();
alert(shaneArray.length);
}
else if(sm.selectedIndex + 1 === 3) {
bobArray.push(1);
rickArray.pop();
shaneArray.pop();
carolArray.pop();
lArray.pop();
alert(bobArray.length);
}
else if(sm.selectedIndex + 1 === 4) {
carolArray.push(1);
rickArray.pop();
shaneArray.pop();
bobArray.pop();
lArray.pop();
alert(carolArray.length);
}
else if(sm.selectedIndex + 1 === 5) {
lArray.push(1);
rickArray.pop();
shaneArray.pop();
bobArray.pop();
carolArray.pop();
alert(lArray.length);
}
else{}
};
.onblur цель найти массив с самой большой длины или значения из всех selectmenus, чтобы определить, какой человек, связанный с массивом пользователь походит. Снова кажется неэффективным способом справиться!
sm.onblur = function() {
var rickL = rickArray.length;
var shaneL = shaneArray.length;
var bobL = bobArray.length;
var carolL = carolArray.length;
var lL = lArray.length;
// unfinished if else statement !!
if(rickL > shaneL && rickL > bobL && rickL > carolL && rickL > lL) {
alert("you are Rick Grimes");
}
else{
alert("you are someone else");
}
};
}
Hi Barmar Спасибо за помощь! Использование объекта массивов для символов велико, но не должно ли цикл for использовать символы [i] .array.push (1) вместо символа [i] .push (1) или у него другая цель? @Barmar – gpinson
Вот что я сказал в предложении, начинающемся с «Тогда вы будете использовать». – Barmar
Петля в верхней части ответа использует двумерный массив. Массив объектов - это изменение. – Barmar