2016-12-29 69 views
1

我有一個數組,看起來像這樣:陣列到多個對象下劃線

[{ 
    LocalBond:"0", 
    LocalCash:"2.42", 
    LocalEquity:"0", 
    ForeignEquity: "4", 
    ... 
}] 

我希望它看起來像:我想打開一個單獨的對象爲許多對象

[{ 
    Source: "LocalBond", 
    Value: "0" 
}, 
    Source: "LocalCash", 
    Value: "2.42" 
}, 
    Source: "LocalEquity", 
    Value: "0" 
}, 
{...} 
] 

。我還需要排除'ForeignEquity'的結果。

我嘗試使用_.map,並返回我想要的字段,但我掙扎了一下。我在正確的軌道上嗎?當我將多個參數傳遞給我的函數時,我沒有得到期望的結果。

+0

真初始化數組有一個對象,或多個對象? – allel

回答

1

最簡單的代碼是純javascript:

使用的對象的屬性的for..in訪問和內部的for循環生成數組。

http://www.w3schools.com/jsref/jsref_forin.asp

實施例:

https://jsfiddle.net/jewrsL8a/5/

var collection = [{ 
    LocalBond:"0", 
    LocalCash:"2.42", 
    LocalEquity:"0", 
    ForeignEquity: "4" 
}]; 

var result = []; 

for (var property in collection[0]) { 
    if(property!=='ForeignEquity'){ 
     result.push({'Source': property, 'Value': collection[0][property]}); 
    } 
} 

console.log(result); 
+2

'Value'在這種情況下應該是collection [0] [property] – Skotnik

+2

let在某些瀏覽器中不被很好的支持 –

+0

這是真的,解決了。 – allel