javascript - 如何根据另一个对象数组的键形成一个对象?

标签 javascript

我想根据另一个对象的键形成一个对象,并将值设置为空字符串;

const availableList = [
  {id: 1, key: 'emp_id'},
  {id: 2, key: 'firstname'},
  {id: 3, key: 'lastname'},
  {id: 4, key: 'mobile'},
  {id: 5, key: 'email'},
]
    
availableList .forEach(key => result [key] = availableList [key]);

预期输出:

result = {
  emp_id: '', 
  firstname: '', 
  lastname: '', 
  mobile: '', 
  email: ''
}

最佳答案

您可以将 .reduce 与对象析构和对象的计算属性一起使用

const availableList = [
  { id: 1, key: "emp_id" },
  { id: 2, key: "firstname" },
  { id: 3, key: "lastname" },
  { id: 4, key: "mobile" },
  { id: 5, key: "email" },
]

const res = availableList.reduce(
  (finalObj, iteratedObj) => ({ ...finalObj, [iteratedObj.key]: "" }),
  {}
)

console.log(res)

引用资料

Array.property.reduce

Spread syntax

Destructing assignment

Computed property names (ES 2015)

关于javascript - 如何根据另一个对象数组的键形成一个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67769389/

相关文章:

javascript - 如何在 javascript 中向 div contenteditable 添加新行?

javascript - 10ms 间隔与 firefox

javascript - 使用 JS 从列表中获取选定的项目

javascript - 在 ExtJS 4 网格面板中动态切换 View

javascript - 应用程序中所有语言的名称大小写约定

javascript - 使用关键帧动画光标不起作用

javascript - 为什么使用 Step 函数 (AWS) 而不是 setTimeout(Javascript) 来实现调度程序功能

javascript - 使用未声明的变量进行解构 - 它们的范围是什么?

javascript - 观察新 DOM 节点的插入并调用它们的方法

javascript - 使用 Ionic( Angular )。无法访问显示屏/屏幕内有按钮的移动设备的硬件后退按钮