为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

函数式编程 2019-05-20 17:13:09
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提出来当下面的键值。
查看完整描述

2 回答

?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

不用一个一个push,对每一个status直接filter一下就行了
letresult=a.reduce((acc,{status})=>(
acc[status]?acc:{
...acc,
[status]:a.filter(item=>item.status===status)
}
),{})
                            
查看完整回答
反对 回复 2019-05-20
?
MMMHUHU

TA贡献1834条经验 获得超8个赞

varresult={};
a.forEach(item=>{
result[item.status]=result[item.status]||[];
result[item.status].push(item);
});
console.log(result)
                            
查看完整回答
反对 回复 2019-05-20
  • 2 回答
  • 0 关注
  • 316 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信