一,现象
做了个优惠券功能,需要对优惠券进行金额和时间排序,但是微信开发者工具和真机调试都没问题。一发布体验版,就只剩下金额排序生效了,时间排序的程序看起来压根就没有执行。
二,原因
三,我的解决
availableListforShow(){
//需要做排序,把优惠金额最高的放最前面,若是优惠金额相同则把有效期近的放前面 let newList =JSON.parse(JSON.stringify(this.available)) //如果有特价菜,则商品小计要减去特价菜优惠之后-再来计算平台优惠 let originNum if(this.special_price_coupon_saving>0){
originNum=this.subtotal-this.special_price_coupon_saving }else{
originNum=this.subtotal } //第一步,把所有的优惠金额全部计算出来,添加属性到每一个对象中,并且把时间格式转化为ios兼容的YY/MM/DD hh:mm:ss格式 let couponNum let newArr=newList.map((item,index)=>{
item.passTime=item.passTime.replace(/-/g,'/') if(item.coupType=='1'){
//满减券 couponNum=item.ruleList[0].operation }else{
//折扣券 let couponMul=originNum*item.ruleList[0].operation const countNum1=this.$util.numDiv(couponMul,100) if(countNum1>=item.ruleList[0].maxDiscount){
//限额 couponNum=item.ruleList[0].maxDiscount }else{
couponNum=countNum1 } } item['couponNum']=couponNum return item }) console.log("我处理后的优惠券列表",newArr) let myNewArr=JSON.parse(JSON.stringify(newArr)) //第二步,把转化好的数组,按照优惠金额从高到低排序, myNewArr.sort(function(a,b){
console.log("---金额比较---",a.couponNum > b.couponNum) if (a.couponNum > b.couponNum) {
return -1//反向,大数在前 }else{
if((a.couponNum == b.couponNum) && (Date.parse(a.passTime)<Date.parse(b.passTime))){
console.log("-----金额相同,时间比较----",Date.parse(a.passTime)<Date.parse(b.passTime)) return -1 //有效期小的在前 }else{
return 0 } } }) console.log("重新排序后的数组",myNewArr) return myNewArr }
主要就是这行代码:
item.passTime=item.passTime.replace(/-/g,'/')
到此这篇时间排序处理在微信小程序和真机调试没问题,发布体验版后未执行的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/hd-wfwjg/11079.html