微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从对象数组中,将属性的值提取为数组

如何解决从对象数组中,将属性的值提取为数组

这是实现它的更短的方法

let result = objArray.map(a => a.foo);

要么

let result = objArray.map(({ foo }) => foo)

你也可以检查Array.prototype.map()

解决方法

我有具有以下结构的 JavaScript 对象数组:

objArray = [ { foo: 1,bar: 2},{ foo: 3,bar: 4},{ foo: 5,bar: 6} ];

我想从每个对象中提取一个字段,并获取一个包含值的数组,例如 fieldfoo将给出 array [ 1,3,5 ]

我可以用这种简单的方法做到这一点:

function getFields(input,field) {
    var output = [];
    for (var i=0; i < input.length ; ++i)
        output.push(input[i][field]);
    return output;
}

var result = getFields(objArray,"foo"); // returns [ 1,5 ]

有没有更优雅或更惯用的方法来做到这一点,这样就不需要自定义实用功能了?


注意建议的 duplicate,它涵盖了如何将单个对象转换为数组。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。