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

处理数组中的数据,有没有更高效优雅的写法?

处理数组中的数据,有没有更高效优雅的写法?

红颜莎娜 2019-05-10 09:39:09
constmenuList=[{text:"狗狗",icon:"",type:"gougou",status:fasle,},{text:"猫猫",icon:"",type:"maomao",status:fasle,}]letdataSource=[];menuList.map((item,index)=>dataSource.push({key:item.type,rank:index+1,text:item.text,type:item.type,icon:item.icon,status:item.status}));想得到处理后的数据,返回个新的数组dataSource,上面是基本的写法了,有没有其他的方法?
查看完整描述

2 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

letdataSource=menuList.map((item,index)=>{
item={
key:item.type,
rank:index+1,
text:item.text,
type:item.type,
icon:item.icon,
status:item.status
};
returnitem
});
                            
查看完整回答
反对 回复 2019-05-10
?
陪伴而非守候

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

map本来就是描述映射关系的,所以这里不需要新建一个dataSource,直接在map的回调函数中返回映射后的对象即可,这样map对数组进行遍历后会返回一个新的数组,这已经算是很不错的写法了。
另外,如果映射关系有很多,可能会链式调用若干map方法,比如:
arr.map(func1).map(func2).map(func3)
这种情况可以利用compose来提高一些效率,如下:
arr.map(compose(func3,func2,func1))
                            
查看完整回答
反对 回复 2019-05-10
  • 2 回答
  • 0 关注
  • 484 浏览
慕课专栏
更多

添加回答

举报

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