2011-12-14 35 views
0

我在这个格式的大阵:如何用jQuery/javascript建立关联数组?

var cars = [{"brand":"Honda","year":"2002"},{"brand":"Toyota","year":"2000"},{"brand":"Subaru","year":"2009"}];

数组是非常大的(我做了小的演示用途),我想组织同一品牌的汽车到一个数组,所以品牌名称将成为每个子阵列的关键,就像这样:

carsByBrand [本田[],丰田[],斯巴鲁[]

我预计这将是直线前进,但它不是这样的。我试过下面的代码的几个变化,但每次它返回:

carsByBrand [item.brand]未定义

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 [项目['品牌']],为什么这不起作用,以及如何去做?

jsBin:http://jsbin.com/orafos

回答

3
carsByBrand[item.brand].push(item); 

如果该品牌的阵列已经存在,它不会,除非你先用一个空数组初始化它只会工作。

尝试

brand = carsByBrand[item.brand]; 
    if (brand) { 
     brand.push(item); 
    else {  
     carsByBrand[item.brand] = [item]; 
    } 
+0

好吧,我知道了。谢谢。 – ofko 2011-12-14 03:38:29