在下面的数据中.我想得到一个带有一些值作为键的对象,如下所示:
FROM HERE:链接到整个数据HERE(this.localObject)
const employees = [{ "EmployeeID": "100A","FirstName": "Downs","aval": [ {"start": "11-19","end": "2","ava": "30","health": "4"},{"start": "11-20","ava": "40",{"start": "11-21","ava": "50",{"start": "11-22","ava": "60","health": "4"} ] },{ "EmployeeID": "100B","FirstName": "Mckenzie","ava": "1","ava": "2","ava": "3","ava": "4",]
到这里:
const employees = [ { "EmployeeID": "100A","11-19": "30"},{ "EmployeeID": "100A","11-20": "40"},"11-21": "50"},"11-22": "60"},{ "EmployeeID": "100B","11-19": "1"},"11-20": "2"},"11-21": "3"},"11-22": "4"} ] //and so on...
到目前为止,我已经尝试过:
this.localData = this.localObject.employees; const firstLevel = this.localData.map(x => x.aval);
firsLevel会给我一个更接近我需要的对象数组,现在我需要将“start”值作为键,将“ava”值作为值属性放在自己的对象容器中
解决方法
您还需要迭代内部数组并构建单个数组.
var array = [{ EmployeeID: "100A",FirstName: "Downs",aval: [{ start: "11-19",end: "2",ava: "30",health: "4" },{ start: "11-20",ava: "40",{ start: "11-21",ava: "50",{ start: "11-22",ava: "60",health: "4" }] },{ EmployeeID: "100B",FirstName: "Mckenzie",ava: "1",ava: "2",ava: "3",ava: "4",health: "4" }] }],result = array.reduce((r,{ EmployeeID,aval }) => [ ...r,...aval.map(({ start,ava }) => ({ EmployeeID,[start]: ava })) ],[]); console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。