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

javascript – 从forEach创建对象

我试图找出是否有办法将此代码重写为单个对象创建
my_array = [
  {key: 1,value: "foo"},{key: 2,value: "bar"}
];

let my_obj = {};
my_array.forEach((elem) => {
  my_obj[elem.key] = elem.value;
});

我想做的是:

my_array = [
  {key: 1,value: "bar"},];

const my_obj = ...?

有没有办法进行一次转换,相当于forEach调用

解决方法

您可以使用 Array.prototype.reduce()实现此目的:
var my_array = [{key: 1,value:"foo"},value:"bar"}];
  
var my_object = my_array.reduce(function(prev,curr) {
  prev[curr.key] = curr.value;
  return prev;
},{});

console.log(my_object); // {"1": "foo","2": "bar"}

或者,使用ES6语法:

const my_object = my_array.reduce((prev,curr) => {
    prev[curr.key] = curr.value;
    return prev;
},{});

原文地址:https://www.jb51.cc/js/158565.html

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

相关推荐