如何根据给定的物品数量,对带有价格和物品名称的数组进行排序,使其以物品名称和价格为准进行竖向排列?
问题详述:
给定数组:
letarr=[{price:5,useruid:0,item_name:'测试3'},{price:20,useruid:0,item_name:'测试2'},{price:23,useruid:0,item_name:'测试1'},{price:39,useruid:0,item_name:'测试2'},{price:43,useruid:0,item_name:'测试1'},{price:55,useruid:0,item_name:'测试3'},{price:66,useruid:0,item_name:'测试2'},{price:72,useruid:0,item_name:'测试3'},{price:82,useruid:0,item_name:'测试3'},{price:97,useruid:0,item_name:'测试3'},]letitems=[{id:1,num:2}{id:2,num:3}{id:3,num:5}]期望输出:
letresult=[[{price:5,useruid:0,item_name:'测试3'},{price:39,useruid:0,item_name:'测试2'},][{price:20,useruid:0,item_name:'测试2'},{price:43,useruid:0,item_name:'测试1'},{price:66,useruid:0,item_name:'测试2'},][{price:23,useruid:0,item_name:'测试1'},{price:55,useruid:0,item_name:'测试3'},{price:72,useruid:0,item_name:'测试3'},{price:82,useruid:0,item_name:'测试3'},{price:97,useruid:0,item_name:'测试3'},]]解决方案:
constresult:(typeofarr)[0][][]=newarray(items.length).fill(0).map(()=>[])for(letflag=true,index=0;flag;){flag=falseitems.foreach((v,i)=>{consta=result[i]if(a.length<v.num){a.push(arr[index++])flag=true}})}console.log(result)