一个简单的数组问题,ES6如何优雅的解决,萌新求救

leta=[{name:"1",status:"1"},{name:"2",status:"1"},{name:"3",status:"2"},{name:"4",status:"2"},{name:"5",status:"3"},{name:"6",status:"bbb"}]
{'1':[{name:"1",status:"1"},{name:"2",status:"1"}],'2':[{name:"3",status:"2"},{name:"4",status:"2"}],'3':[{name:"5",status:"3"}],'bbb':[{name:"6",status:"bbb"}]}
用ES6如何把上面的变成下面这种结构,萌新求救。就是把status提出来当下面的键值。
函数式编程
浏览 318回答 2
2回答

人到中年有点甜

不用一个一个push,对每一个status直接filter一下就行了letresult=a.reduce((acc,{status})=>(acc[status]?acc:{...acc,[status]:a.filter(item=>item.status===status)}),{})

MMMHUHU

varresult={};a.forEach(item=>{result[item.status]=result[item.status]||[];result[item.status].push(item);});console.log(result)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript