Javascript 如何基于另一个对象数组中的键形成对象?

Javascript 如何基于另一个对象数组中的键形成对象?,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] = availabl

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

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,键:“emp_id”},
{id:2,键:“firstname”},
{id:3,键:“lastname”},
{id:4,键:“mobile”},
{id:5,键:“email”},
]
const res=可用列表reduce(
(finalObj,iteratedObj)=>({…finalObj[iteratedObj.key]:“”),
{}
)

log(res)
如果您不太熟悉javascript、数组和对象,最好保持简单(避免使用箭头函数和花哨的es6符号)

一个简单的例子应该可以做到这一点:

const availableList=[
{id:1,键:'emp_id'},
{id:2,键:'firstname'},
{id:3,键:'lastname'},
{id:4,键:'mobile'},
{id:5,键:'email'},
];
var newObject=availableList.reduce(函数(结果,项){
结果[项目编号]='';
返回结果;
}, {});

console.log(newObject)您有一个属性数组。因此,正如您在问题中所建议的,您需要使用forEach来迭代所有项。在本例中,项目是对象。因此,只需编写obj.property,就可以访问它们的所有属性

让我们看看如何向对象添加属性。 我可以做到:

obj.property5 = 'something'
obj['property5'] = 'something'
或者我可以:

obj.property5 = 'something'
obj['property5'] = 'something'
由于属性的名称是不可预测的,所以应该使用第二个名称。 下面是代码:

var secondObject = {};

availableList.forEach(function(item, index) {
  secondObject[item.key] = '';
});

以下是我对它的看法:

const availableList=[
{id:1,键:“emp_id”},
{id:2,键:“firstname”},
{id:3,键:“lastname”},
{id:4,键:“mobile”},
{id:5,键:“email”},
];
const result=Object.fromEntries(availableList.map((item)=>[item.key,“]))

控制台日志(结果)请提供一个明确的问题。问题应始终包含问号;)我已经提供了可用的列表预期输出和我尝试过的:)回答得很好,但是如果目标是保持简单,那么您不应该从
数组#forEach
回调中删除
index
参数吗?当然可以。我把它放在那里是因为如果有人不知道它是如何工作的,他/她可以更好地理解