javascript - 将对象数组转换为数组

标签 javascript ecmascript-6

我知道以前曾有人问过这个问题,但我发现的每个解决方案都没有按照我需要的方式进行。

数组

[ {key: "Title", value: "Default Text"}, {key: "Title2", value: "Default Text2"} ]

我需要的对象

{
"Title": "Default Text", 
"Title2": "Default Text2"
}

我尝试的一切似乎都会返回错误的结果:

{ {key: "Title", value: "Default Text"}, {key: "Title2", value: "Default Text2"} }

我已经尝试了在这里找到的大部分内容。我尝试过的最后一个格式错误的是:

let obj = Object.assign({}, arrayHere);

我想要什么:

WHat I need

我不断得到但错误的:

What I keep getting, but is wrong

最佳答案

使用Array.prototype.reduce()功能:

var arr = [ {key: "Title", value: "Default Text"}, {key: "Title2", value: "Default Text2"} ],
    result = arr.reduce((r,o) => {r[o.key] = o.value; return r; }, {});

console.log(result);

关于javascript - 将对象数组转换为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42891929/

相关文章:

javascript - 从特权方法访问私有(private)成员

javascript - 使用 JSON.parse(),如何获取多维数组中的值?

javascript - 从 typescript 代码滚动到元素( Angular 5)

javascript - 在数组的Map中不使用图查找循环依赖

javascript - 重写较短版本的函数

javascript - 可滚动左列 w/100% 剩余屏幕高度,滚动问题

javascript - 调试时在 Vue-CLI 应用程序中禁用转译为 ES5

javascript - 如何在传奇中使用警报,暂停它,并且仅在按下按钮时才继续?

javascript - Es6 React 箭头函数行为

typescript - 为什么我必须调用 NgZone.run 让我的 View 在 Angular2 中使用 breezejs 进行更新?