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;
},{});

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...