javascript - 从对象数组创建一个新对象

标签 javascript arrays object ecmascript-6

<分区>

这可能是重复的,但我到处搜索似乎只能找到想要创建对象数组的人。 基本上我试图实现相反的结果,将对象数组的某些值拉出到一个对象中。这让我有点头疼,所以你们中的任何 JS 专家如果能帮助我,我将不胜感激!

基本上我有一个像这样的对象数组:

[
 { field: 'name', value: 'sam', isRequired: true },
 { field: 'email', value: 'sam@dummyemail.net', isRequired: true },
 { field: 'message', value: 'hey', isRequired: false },
]

它们以这种方式分开,因为我通过字段进行验证。

在验证阶段之后,我想将字段和值属性映射到新对象中的名称值对,例如:

{
 name: 'sam',
 email: 'sam@dummyemail.net',
 message: 'hey',
}

就像我说的那样,任何帮助都会很棒!干杯。

最佳答案

Array#map数组中的每个对象都变成一个新对象,以 field 作为属性的键,以及值,嗯,属性的值。然后使用 spread syntax 将新对象数组组合成对象和 Object#assign :

const arr = [
 { field: 'name', value: 'sam', isRequired: true },
 { field: 'email', value: 'sam@dummyemail.net', isRequired: true },
 { field: 'message', value: 'hey', isRequired: false },
];
  
const result = Object.assign({}, ...arr.map(({ field, value }) => ({ [field]: value })));

console.log(result);

关于javascript - 从对象数组创建一个新对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41271883/

相关文章:

javascript - 如何将正则表达式测试放入 arr.find 中

javascript - 使用 Object.assign() 删除对象属性

javascript - 为什么需要在 onDeviceReady 事件处理程序中调用 $(window).scroll() ?

javascript - onclick按钮更改textarea中的默认文本

c 打印太多字符

Javascript 将数据按摩到新数组中

angular - 将数据添加到 Firebase Cloud Firestore 和 Angular

javascript - Telerik RadTreeView 和客户端展开/折叠

javascript - Vuetifyjs : how to make the v-stepper's step clickable?

c - 将指针存储在指针数组中时遇到问题