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

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,上面是基本的写法了,有没有其他的方法?
红颜莎娜
浏览 485回答 2
2回答

倚天杖

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});

陪伴而非守候

map本来就是描述映射关系的,所以这里不需要新建一个dataSource,直接在map的回调函数中返回映射后的对象即可,这样map对数组进行遍历后会返回一个新的数组,这已经算是很不错的写法了。另外,如果映射关系有很多,可能会链式调用若干map方法,比如:arr.map(func1).map(func2).map(func3)这种情况可以利用compose来提高一些效率,如下:arr.map(compose(func3,func2,func1))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript