js将对象数组的原始数据与传入的新数据进行比较,如果有新数据,则将其替换为新数据。否则,将保留原始数据。产品id和异常类型返回给我,我需要在页面上显示状态:我需要做的就是将我上一个产品列表与最新返回的产品列表进行比较,最新数据不包括售罄和outofstock是的,我需要更换保留最后一个,包括soldout和outstock,在页面上显示logo:模拟旧列表:vararr1=[{id:'1',name:'张三',age:'15'},{id:'2',name:'lisi',age:'16'},{id:'3',name:'ani',age:'17'},]模拟新列表:vararr2=[{id:'1',name:'zhangsan',age:'100'},{id:'2',name:'lisi'},]//传值和通过引用函数concatFailSpecs(oldList,newList){letoldList1=oldList.map((item)=>{newList.forEach((item2)=>{if(item.id==item2.id){item=item2}})返回项目});returnoldList1;}//或者functionconcatFailSpecs(oldList,newList){returnoldList.map(oldItem=>{constnewItem=newList.find(newItem=>newItem.id===oldItem.id);returnnewItem||oldItem;});}实际渲染数据:this.setData({productList:concatFailSpecs(this.data.productList,res.body.productList),});通过封装的concatFailSpecs方法,获取最新返回的数据根据replacemyoldlist里面的数据,保留sold-out和out-of-stock的items,因为如果有out-of-stock或者out-of-stock的items,会额外返回一个FailSpecs列表,里面包含异常类型和itemid,我会得到处理过的item列表与FailSpecs列表比较,将符合条件的异常作为属性添加到productList中://failSpecs:1isofftheshelf2:Insufficientstock3:SoldoutlistfailSpecsCheck(productList,failSpecs){productList.forEach((item)=>{failSpecs.forEach((item2)=>{if(item.productSpecId==item2.specId){item.failType=item2.failType;item.sku=item2.sku;item.maxBuyNum=item2.maxBuyNum;if(item.count>item2.maxBuyNum){item.count=item2.maxBuyNum;}}})});this.setData({productList,});},函数完成。
