如何使用jQuery/javascript构建关联数组?
我有一个这种格式的大数组:如何使用jQuery/javascript构建关联数组?,javascript,jquery,Javascript,Jquery,我有一个这种格式的大数组: var cars=[{“品牌”:“本田”,“年份”:“2002”},{“品牌”:“丰田”,“年份”:“2000”},{“品牌”:“斯巴鲁”,“年份”:“2009”}] 阵列非常大(为了演示,我把它做得很小),我想把同一品牌的汽车组织成一个阵列,因此品牌名称将是每个子阵列的关键,如下所示: carsByBrand[本田[]、丰田[]、斯巴鲁[]] 我原以为会是直截了当的,但事实并非如此。我尝试了以下代码的几种变体,但每次都返回: carsByBrand[item.bra
var cars=[{“品牌”:“本田”,“年份”:“2002”},{“品牌”:“丰田”,“年份”:“2000”},{“品牌”:“斯巴鲁”,“年份”:“2009”}]代码>
阵列非常大(为了演示,我把它做得很小),我想把同一品牌的汽车组织成一个阵列,因此品牌名称将是每个子阵列的关键,如下所示:
carsByBrand[本田[]、丰田[]、斯巴鲁[]]
我原以为会是直截了当的,但事实并非如此。我尝试了以下代码的几种变体,但每次都返回:
carsByBrand[item.brand]未定义
我也试过carsByBrand[item['brand']],为什么不起作用,怎么做
jsBin:
只有当该品牌的数组已经存在时,它才会工作,除非首先使用空数组初始化它,否则它不会工作
试一试
只有当该品牌的数组已经存在时,它才会工作,除非首先使用空数组初始化它,否则它不会工作
试一试
var carsByBrand = [];
$.each(cars, function(i,item){
carsByBrand[item.brand].push(item);
});
//console.debug(carsByBrand); //uncomment and look at this if you have Firebug
alert(carsByBrand.length);
carsByBrand[item.brand].push(item);
brand = carsByBrand[item.brand];
if (brand) {
brand.push(item);
else {
carsByBrand[item.brand] = [item];
}