2015-11-01 44 views
1

我在對象的嵌套地獄,這裏內。我覺得這有一個答案,我只是無法弄清楚如何說出發生的事情。由對象屬性過濾的對象內的對象的陣列中的陣列

所以,我得到的對象從靜止回報這個巨型陣列(類似450+對象)來加載這樣的:

results[0] = { 
prop0: "String", 
prop1: "String", 
prop2: bool, 
prop3: Object { 
    prop0: "String" 
} 
prop4: "String" 
} 

我做這件事情,第一,在那裏我創建一個對象數組,其中包含該嵌套對象屬性中的唯一字符串以及字符串出現在數據集內的次數。

我現在需要的,對於每一個唯一的字符串,與原始數據集,其中results.prop3.prop0塌陷數組中的字符串匹配中創建對象的數組。這足以令人困惑嗎?

從這:

名稱: 「喬」,
地點:狀態{
狀態: 「紐約」,
},
活動:假
}

對此:

New York(120)
喬 - 死

到目前爲止,我已經得到了這一點,使用underscore.js:

for(index in collapsed){ 
var details = _.where(results,{state: {state: collapsed[index][0]}}); 

console.log(details); 

} 

但顯然我是個白癡的地方,因爲這只是在我的塌陷陣列返回的每一件事情空數組。

樣品倒塌
的[{ 「紐約」,120},{ 「格」,79},{ 「另一個地方」,15}。

我基本上想建在哪裏,每個地方的下面,我在廣場狀態字符串匹配在嵌套對象的底部一路對象加載數據的表。

要JM _____的點,我要去嘗試。

+1

你可以包含什麼倒塌看起來像一個樣本?它是'結果[我] .Place.state.state'? – jmunsch

回答

0

下面是基於_.reduce()_.filter()

獲取與由狀態

var collapsed = _.reduce(response, function(memo, item) { 
    if (! memo[item.Place.state]) { 
    memo[item.Place.state] = 0; 
    } 
    memo[item.Place.state]++; 
    return memo; 
}, {}); 

結果分組的項目的數目摺疊陣列以下劃線數據操作的實例:分組的對象與狀態作爲鍵和計數作爲值。

{ 
    London: 2, 
    New York: 4 
} 

入門的狀態過濾數據

var filtered = _.filter(response, function(item) { 
    return item.Place.state === "New York"; 
}); 

結果:與僅紐約市的對象數組

鏈接jsbin演示

+0

這絕對有效。我想我想嘗試一下,並且聰明地使用摺疊數組中的鍵作爲由json響應創建的對象數組上的過濾文本。我現在意識到,如果沒有辦法爲摺疊數組中的每個值動態創建不同的數組,則解決方案是不可行的。值得慶幸的是,在實際的解決方案中,摺疊陣列將始終具有相同的值,因此我可以在其中硬編碼。 – ChrisPEditor