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
参数吗?当然可以。我把它放在那里是因为如果有人不知道它是如何工作的,他/她可以更好地理解