3 回答

TA贡献1851条经验 获得超4个赞
您只需要将动态密钥名称括在方括号中,如下所示:[]
[e.name] : {id: e.id, surname: e.surname }
var arr1 = [ {id: 1, name: 'John', surname: 'Smith'}, {id: 2, name: 'Peter', surname: 'Black'} ];
let arr2 = arr1.map( e => ({ [e.name] : {id: e.id, surname: e.surname} }));
console.log(arr2)
.as-console-wrapper { max-height: 100% !important; top: 0; }

TA贡献1845条经验 获得超8个赞
你可以这样做;你太近了,只是你忘记了使用绑定钥匙[obj.name]
let data = [{ id: 1, name: 'John', surname: 'Smith' }, { id: 2, name: 'Peter',surname: 'Black'}]
let finalResult =data.map(obj => ({ [obj.name]: { id: obj.id, surname: obj.surname } }))
console.log(finalResult)

TA贡献1834条经验 获得超8个赞
如果要使用表达式作为键,请将其括在方括号中:
let arr2 = arr1.map(e => ({[e.name]: {id: e.id, surname: e.surname}}));
添加回答
举报