如何在javascript中创建关联数组
How to create an associative array in 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"} }
我在 ajax 响应后以以下方式填充这些值:
$.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});
});
但这会导致以下错误未捕获类型错误:无法读取未定义的属性"push"
我怎样才能创建一个这样的数组。请帮我解决这个问题感谢大家
push
是数组(不是纯对象)上的一种方法,它将您传递给它的值放在数组的末尾。
您不是在尝试将值放在对象的末尾,而是尝试将其分配给特定索引。
tmpsongList[item.product_id] = { ...
它不是一个数组,它是一个映射/对象。var a = {} 是一个对象/映射。var a = [] 是一个数组。在您的情况下,您需要
tmpsongList[item.product_id] = {'label': label,
'song': item.audiofile,
'name': item.name,
'tag': item.tag,
'song_path': item.audio_url};
相关文章:
- 我想将链接关联到动态创建的p元素上的相应文章
- 如何创建php函数或任何脚本/jquery Javascript,使我能够获取与复选框关联的值并添加它们
- 如何在 Angular JS 中从关联数组创建多个复选框
- 在创建时使用 Sequelize 保存时获取关联
- 创建具有关联 dom 元素的 javascript 对象的首选方法是什么
- 续集查找或创建与包含关联
- 使用javascript创建动态多维关联数组
- 正在创建动态关联阵列
- 如何在创建后立即显示关联模型的特性
- 从js文件而不是xml文件创建关联数组
- 使用 JQuery 创建关联数组
- 如何在javascript中创建关联数组
- 创建关联实例-Sequelize
- 用JavaScript创建关联数组
- 使用JavaScript创建关联数组
- 如何创建创建关联数组
- 从简单数组创建关联数组,为每个数组项自动增加键
- 在模型之间创建关联
- 从Jquery XML响应创建关联键数组
- 在for循环中创建关联数组