如何使用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];
   }