2013-03-26 85 views
1
var data1=[ 
    {"year":2000, 
    "country":"Madagascar", 
    "country_id":847, 
    "indicator":"Current account balance - National Currency (millions)" 
    }, 
    {"year":2005, 
    "country":"Madagascar", 
    "country_id":847, 
    "indicator":"Current account balance - National Currency (millions)" 
    }, 
    {"year":2000, 
    "country":"Madagascar", 
    "country_id":847, 
    "indicator":"Net Income - National Currency (millions)" 
    }, 
    {"year":2005, 
    "country":"Madagascar", 
    "country_id":847, 
    "indicator":"Net Income - National Currency (millions)" 
    } 
] 

這是我的JSON數據 我想要做這樣的使用underscorejs創建JSON像鍵和值

{ 
    "key":"Madagascar" 
    "values":[ 
    {"year":2000, 
    "country":"Madagascar", 
    "country_id":847, 
    "indicator":"Current account balance - National Currency (millions)" 
    }, 
    {"year":2005, 
    "country":"Madagascar", 
    "country_id":847, 
    "indicator":"Current account balance - National Currency (millions)" 
    } 
    ] 
} 

請任何一個可以幫助我解決使用underscore.js

這個問題
+2

而你的問題是什麼? – 2013-03-26 06:29:46

+0

所以你不想要「淨收入」? – slebetman 2013-04-01 05:21:00

+0

不是我想根據國家明智的uniq和它的值過濾它 – sobha 2013-04-01 08:28:26

回答

0

下劃線具有_.groupBy()方法可以做繁重,但它爲每個值的密鑰創建一個對象:

var groupedData1 = _.groupBy(data1, 'country'); 

這裏的groupedData1的值:)),通過各個國家迭代

{"Madagascar": [ 
    { 
     "year": 2000, 
     "country": "Madagascar", 
     "country_id": 847, 
     "indicator": "Current account balance - National Currency (millions)" 
    }, 
    { 
     "year": 2005, 
     "country": "Madagascar", 
     "country_id": 847, 
     "indicator": "Current account balance - National Currency (millions)" 
    }, 
    { 
     "year": 2000, 
     "country": "Madagascar", 
     "country_id": 847, 
     "indicator": "Net Income - National Currency (millions)" 
    }, 
    { 
     "year": 2005, 
     "country": "Madagascar", 
     "country_id": 847, 
     "indicator": "Net Income - National Currency (millions)" 
    } 
]} 

轉換成鍵/值的數組,你可以使用_.each(和_.keys(:

var groupedData2 = []; 

_.each(_.keys(groupedData1), function (country) { 
    groupedData2.push({ 
     "key": country, 
     "values": groupedData1[country] 
    }); 
}); 

這將創建對象的每個國家的數組,一個目標:

[{ 
    "key": "Madagascar", 
    "values": [{ 
     "year": 2000, 
     "country": "Madagascar", 
     "country_id": 847, 
     "indicator": "Current account balance - National Currency (millions)" 
    }, { 
     "year": 2005, 
     "country": "Madagascar", 
     "country_id": 847, 
     "indicator": "Current account balance - National Currency (millions)" 
    }, { 
     "year": 2000, 
     "country": "Madagascar", 
     "country_id": 847, 
     "indicator": "Net Income - National Currency (millions)" 
    }, { 
     "year": 2005, 
     "country": "Madagascar", 
     "country_id": 847, 
     "indicator": "Net Income - National Currency (millions)" 
    }] 
}] 
+0

謝謝,但我想uniq年 – sobha 2013-04-04 07:34:23

+0

這個樣本數據中每年有兩個指標。你想選擇一個指標,還是分開指標? – 2013-04-04 23:37:11

+0

單獨指示器 – sobha 2013-04-05 06:25:46