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});
陪伴而非守候
TA贡献1757条经验 获得超8个赞
map本来就是描述映射关系的,所以这里不需要新建一个dataSource,直接在map的回调函数中返回映射后的对象即可,这样map对数组进行遍历后会返回一个新的数组,这已经算是很不错的写法了。另外,如果映射关系有很多,可能会链式调用若干map方法,比如:arr.map(func1).map(func2).map(func3)这种情况可以利用compose来提高一些效率,如下:arr.map(compose(func3,func2,func1))
添加回答
举报
0/150
提交
取消