2014-11-20 4 views
-1

мне нужен массив, который будет создан в следующем формате:Как создать ассоциативный массив в JavaScript

{"3": 
    {"label":"All i want for christmas", 
    "song":"Alliw_1405399165.mp3", 
    "name":"All i want for christmas"}, 
"4": 
    {"label":"Call your girlfriend robyn clip", 
    "song":"Gangnam_Style_2.m4a", 
    "name":"Call your girlfriend robyn}, 
"5": 
    {"label":"Gangnam style psy clip", 
    "song":"Samba_De_Janeiro-world_cup_for_jivebird.m4a", 
    "name":"Gangnam style psy clip"} } 

Я заполняю эти значения после АЯКС ответ следующим образом:

$.each(response.result, function(i,item){ 

         label = item.name; 
         if((item.special_price < item.price)&&(item.special_price!=0) && (item.special_price!=null)) { 
          label += '- is Only '+ item.special_price + item.currencysymbol; 
         } 

         tmpsongList[item.product_id].push({'label': label, 
                'song': item.audiofile, 
                'name': item.name, 
                'tag': item.tag, 
                'song_path': item.audio_url}); 

       }); 

Но эта причина следующая ошибка Uncaught TypeError: не удается прочитать свойство «толчок» неопределенной

Как я могу создать массив как Тхи s.Please помочь мне решить эту проблему Спасибо всем

ответ

0

его не массив, его карта/объект. var a = {} - объект/карта. var a = [] - массив. в вашем случае, вам нужно

tmpsongList[item.product_id] = {'label': label, 
               'song': item.audiofile, 
               'name': item.name, 
               'tag': item.tag, 
               'song_path': item.audio_url}; 
1

push является метод массивов (не простые объекты), помещает значение вы передаете ему на конец массива.

Вы не пытаетесь поместить значение в конец объекта, вы пытаетесь присвоить его определенному индексу.

tmpsongList[item.product_id] = { ... 
Смежные вопросы