【问题标题】:Angular object array to column array角度对象数组到列数组
【发布时间】:2014-04-24 11:36:23
【问题描述】:

我有一个对象,它有字段 idtext 以及可能更多的其他字段。

数组中有很多对象,我想将其转换为文本数组。

这是我目前所拥有的。任何更漂亮的解决方案,可能是 LINQ 之类的?

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

【问题讨论】:

  • 您可以使用underscore 之类的东西并使用它们的map() 函数。另一个有趣的选择可以在这里看到:stackoverflow.com/questions/15411620/…
  • 您在上面发布的解决方案有什么问题?
  • 每次我必须从对象数组中选择一个字段时,额外增加 3 行代码。

标签: javascript arrays linq angularjs


【解决方案1】:

就像@Nix 回答你一样,你可以使用pluck 的Underscore 库。

提取属性值列表


例子:

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 做了什么。

让你的代码简单

【讨论】:

    猜你喜欢
    • 2020-10-28
    • 2020-12-15
    • 2016-03-28
    • 1970-01-01
    • 2019-01-29
    • 2016-10-19
    • 2018-06-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多