Используйте Id, чтобы связать существующий массив

У меня есть вопрос (и проблема) в JavaScript.

Я хочу использовать идентификатор для списка опций:

<select id="map_select">
<option value="1" id="test1" >Test 1</option>
<option value="2" id="test2" >Test 2</option>
</select>

И свяжите этот идентификатор с существующим массивом в JavaScript:

var test1 = ["blabla 1","blabla 2"]
var test2 = ["blabla 1","blabla 2"]

Я пробовал что-то в JQuery:

var selec = $('#map_select option:selected').attr('id');

Но когда я использую его в нужной мне функции (которой нужен массив с push,indexoff...), он не ссылается на мой массив:

function tabused(tab1, tab2){

    var rand = Math.floor(Math.random()*tab2.length)

    if(tab1.length <= tab2.length){
                if (tab1.indexOf(rand) === -1) {
                    tab1.push(rand);
                } 
                else if (tab1.indexOf(rand) > -1) {
                    while(tab1.indexOf(rand) > -1){
                        rand = Math.round(Math.random()*(tab2.length-1));
                    }
                    tab1.push(rand);
                }
                console.log(tab1)
            }
            $("#rules").text(tab2[rand])
}

Пожалуйста, кто-нибудь может мне помочь?

Большое спасибо!

1 ответ

Решение

Я не уверен, но я думаю, что идентификатор не может быть связан со структурой данных в JS, просто так.

Вы можете попробовать использовать словарь на месте.

var test= {
            "test1":["blabla 1","blabla 2"],
            "test2":["blabla 1","blabla 2"]
          };

При использовании вы можете просто найти свой идентификатор в качестве ключа к словарю.

var selec = $('#map_select option:selected').attr('id');
console.log(test[selec]);
Другие вопросы по тегам