2011-12-14 3 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

[OK]を試してみて、私はそれを得ました。ありがとう。 – ofko

関連する問題