2014-04-24 41 views
0

我有對象,它有字段idtext以及可能更多的其他字段。角陣對列數組

數組中有很多對象,我想將它轉換爲文本數組。

這是我目前所擁有的。任何更漂亮的解決方案,可能是LINQ的東西?

var emails = new Array(); 
angular.forEach(this.form.Emails, function (email) { 
    emails.push(email.text); 
}); 
+0

你可以使用像'underscore'和使用他們的'地圖()'功能。另一個有趣的選擇可以在這裏看到:http://stackoverflow.com/questions/15411620/angular-equivalent-of-jquery-map – Nix

+0

上面發佈的解決方案有什麼問題? –

+0

每次需要額外的3行代碼,我必須從對象數組中選擇一個字段。 – Jaanus

回答

1

像@Nix回答你,你可以用下劃線庫pluck

提取的屬性值列表


例子:

this.form.Emails = [ 
        {text: 'moe', id: 1}, 
        {text: 'larry', id: 2}, 
        {text: 'curly', id: 3} 
        ]; 

var emails = _.pluck(this.form.Emails, 'text'); 

//ouput 
["moe", "larry", "curly"] 

反正我建議你離開你的代碼版本是(又名angular.forEach)。因爲維護你的代碼的其他程序員必須知道什麼pluck

使您的代碼簡單