我有我從API接收下列對象:提取對象從對象的名單在Javascript
{
'2012-12-12': [
{ 'id': 1234,
'type': 'A' },
{ 'id': 1235,
'type': 'A' },
{ 'id': 1236,
'type': 'B' },
],
'2012-12-13': [
{ 'id': 1237,
'type': 'A' },
{ 'id': 1238,
'type': 'C' },
{ 'id': 1239,
'type': 'B' },
]
}
然後,我希望有另一個變量命名Array
類型,將持有每一個可能的types
每個對象的type
屬性的值。在這種情況下,這將是:
types = ['A', 'B', 'C']
我試圖把它的功能性的方式(我使用underscore.js)這樣做,但我無法找出這樣做的一種方式。現在我正在使用
types = [];
_.each(response, function(arr1, key1) {
_.each(arr1, function(arr2, key2) {
types.push(arr2.type);
});
});
types = _.uniq(types);
但這很醜陋。你能幫我弄清楚編寫這段代碼的更好方法嗎?
謝謝!
您的代碼很清楚。我認爲這沒有問題。 – 2013-02-12 21:40:53
您可以保留一個單獨的「typeMap」變量,其值將以一個簡單的對象('{}')開始。然後你可以用它來跟蹤你已經看過的類型。 – Pointy 2013-02-12 21:41:31
@dystroy如果原始對象很大,類型數量很少,那麼就會做一些不必要的工作,但我同意它在小規模上可能並不是一件壞事。 – Pointy 2013-02-12 21:42:21