Подтвердить что ты не робот

Эффективный синтаксис для заполнения ассоциативного массива javascript

У меня есть текстовое поле автозаполнения, которое пользователи могут вводить в код элемента и нужно выяснить, какой номер идентификатора этого элемента кода находится в javascript.

Ассоциативный массив - это то, как я предполагаю, это должно быть сделано, но следующее кажется немного длинным, и я надеюсь, что у кого-то есть лучший способ сделать это или сократить то, что у меня ниже:

var itemIds = new Array();
itemIds["item1"] = 15;
itemIds["item2"] = 40;
itemIds["item3"] = 72;
...

function getItemId(code){
    return itemIds[code];
}
4b9b3361

Ответ 1

То, что вы делаете, это не массив - это объект (объекты в JavaScript - эквивалент-иш ассоциативных массивов в PHP).

Вы можете использовать синтаксис литерала объекта JavaScript:

var itemIds = {
    item1: 15,
    item2: 40,
    item3: 72
};

Доступ к объектам JavaScript можно получить через точечную нотацию или индекс массива, например:

itemIds.item1;
itemIds['item1'];

Вам нужно будет использовать второй вариант, если у вас есть имя участника в виде строки.

Ответ 2

Попробуйте использовать нотацию Object Literal, чтобы указать ваш поиск следующим образом:

var itemIds = {
    "item1" : 15,
    "item2" : 40
    ...
};

Доступ должен работать следующим образом:

var item1Value = itemIds["item1"];