Здравствуйте. Есть такая проблема. В общем:
Есть сайт. На сайте находится <input type="text">. При вводе любой буквы в это поле работает автозаполнение(как в гугле). Для автозаполнения использую плагин
jQuery UI.
Есть ассоциативный массив вида:
technics = {tv:'Телевизор',lcdtv:'LCD телевизор',plasmatv:'Plasma телевизор'};
Так вот, для использования этого ассоциативного массива как источник откуда будут браться варианты заполнения поля, для плагина требуется преобразовать его в обычный массив, где каждый элемент его это ассоциативный массив:
[ { label: "Лэйбл значения", value: "значение" }, ... ]
Для этого написал функцию:
function objToArray (obj) {
var res = []; var tempobj = {};
for (var key in obj) {
tempobj.label = obj[key]; tempobj.value = key;
res.push(tempobj);
}
return res;
}
И вроде бы все должно работать, но вместо такого массива:
[ { label: "Телевизор", value: "tv" }, { label: "LCD Телевизор", value: "lcdtv" },{ label: "Plasma Телевизор", value: "plasmatv" }]
Функция возвращает мне такой массив:
[ { label: "Plasma Телевизор", value: "plasmatv" }, { label: "Plasma Телевизор", value: "plasmatv" }, { label: "Plasma Телевизор", value: "plasmatv" }]
То есть все элементы в новом массиве являются последним элементом ассоциативного массива.
Что я делаю не так?