台阶价格对比逻辑

台阶价格的对比逻辑

当用户选择一定数量的产品的时候。每输入一次会对比设定的台阶数。达到的则用台阶数对应的单价。
如果输入特定的值则改成特定价格不难。但是如何判断。用户输入的数字在哪个区间内呢?然后在输出相应的单价。
因为产品上传时,阶梯数。和阶梯价。都是随时可变的。
我们要做的是应用这个逻辑找到符合的单价。

看下效果图

前端展示:

控制台

这里场景用户输入1300运行。

首先。我们先从数据库中拿到该产品对应的所有阶梯数。
我这里用 jq 去做的对比。php读取数据库传到js
也就是:

[100, 500, 1000, 4000, 10000]

↑(控制台第一行所示)纯台阶数作为一个数组。

(括号英文视作变量名。)

jq实时获取用户输入的数据(a)做处理:
a 跟每一个台阶数相减,得到一个新的数组(cha_array)。

[1200, 800, 300, -2700, -8700]

↑(控制台第二行所示)
在这个数组中我们用jq的方法

var man_i = Math.max.apply(null, cha_array);

拿到cha_array数组中最大的值(man_i);
!!! 情况1: 当 man_i >=0 时。
我们用jq的方法

var filterarray = $.grep(cha,function(value){return value >= 0;//筛选出大于等于0的});

筛选出相减数组 cha_array 中大于等于0的正数形成第三个新的数组(filterarray )

[1200, 800, 300]

↑(控制台第三行所示)
filterarray 中取最小值。jq:

var z_man_i = Math.min.apply(null,filterarray);
这里z_man_i结果为:300

再用jq方法获取这个最小值 z_man_i 所在 filterarray 数组的的索引值(排第几位)

var tai_index= cha.indexOf(z_man_i);
这里tai_index结果为:3

这个索引正是 a 对应相应的台阶数。
这里场景用户输入1300 属于[100, 500, 1000, 4000, 10000]台阶数组中满足1000区间的单价。
再利用索引去找对应的区间单价就好啦。

!!! 情况2: 当 man_i <0 时

也就是都不满足。
你想呀。用户输入的数字连最小的台阶数不够减的。那就都不满足优惠条件。
直接给原价就好了。

分享台阶价格对比逻辑。(商城中购买数量越多,单价越低)相关推荐

  1. 商城商品购买数量增减的完美JS效果

    商城商品购买数量增减的完美JS效果 近期在开发一个地方O2O租书项目,使用ASP.NET MVC技术,其中在图书详情页,用户可以输入借阅的数量,这里使用了js来控制数量的增减和校验. 数量一定是数字 ...

  2. [微信小程序]商城之购买商品数量实现

    微信小程序开发交流qq群   173683895    承接微信小程序开发.扫码加微信. 正文: 这里有三种变更数量的方式, 加号,减号,input输入 , 这里做了限制,数量不能小于等于0并且不能超 ...

  3. 用户在电商网站中购买成功了,那么 TA 在微服务中经历了什么?

    题目:用户在电商网站中购买成功了,那么它在微服务中经历了什么? 当我傻啊,用户在电商网站购买成功,还在微服务中,那肯定就是有一套微服务架构的电商系统. 设计一套电商系统还不简单 简单想象一下,既然是一 ...

  4. 魔鬼面试官:用户在电商网站中购买成功了,那么它在微服务中经历了什么?...

    点击上方"朱小厮的博客",选择"设为星标" 做积极的人,而不是积极废人 面试的时候,面试官问:用户在电商网站中购买成功了,那么它在微服务中经历了什么?你该如何作 ...

  5. 用户在电商网站中购买成功了,那么它在微服务中经历了什么(转)

    面试的时候,面试官问:用户在电商网站中购买成功了,那么它在微服务中经历了什么?你该如何作答? 来源:https://juejin.im/post/5cdfe4a16fb9a07ef63facc3 当我 ...

  6. 用python实现猜你喜欢_商城中的猜你喜欢是怎么实现的

    猜你喜欢 今天在做项目中,发现了一个特别有意思的模块,叫做猜你喜欢, 先给大家介绍一下商城里的推荐和猜你喜欢是怎么实现的,首先你要知道,给你推荐的商品,肯定不是随便给你推的,那些都是经过算法,然后显示 ...

  7. ECSHOP产品详情页修改商品购买数量并实时更新商品总价的实现与优化

    当用户购买产品时,可能有时候不仅仅买一件商品,那么当客户购买多个当前产品时如果能同时显示总价,那么无疑将增加我们网站的亲和度!实现这个办法并不难,就是增加一个即时计算商品总价的js代码,这个网络有一篇 ...

  8. 游戏自审自查报告_开发的射箭小游戏上线了,分享一下我在开发过程中遇到的问题...

    利用业余时间开发的微信小游戏-射箭救人质上线了,主要玩法就是操作弓箭射断绳子把人救下来就可以了.图片资源是我找一个朋友做的.开发过程不算太顺利.磕磕绊绊做了12关.希望大家支持下.谢谢. 分享一下我在 ...

  9. php商品在最少购买,ECSHOP给商品设置最少购买数量的方法

    ecshop后台默认没有给商品设置最小起订量或者最少购买量的功能.保哥在使用ecshop做一个商城时,要给商品设置包邮来吸引买家,但又不想买家购买一件产品也给包邮,这样很容易亏本.对于价值较高的商品有 ...

最新文章

  1. sklearn的train_test_split()各函数参数含义解释(非常全)
  2. nginx-rtmp 之统计在线clients
  3. Asp.Net Core 快速邮件队列设计与实现
  4. 每日一笑 | 在地铁上被老奶奶让座是一种什么样的体验?
  5. pat 乙级 1003 我要通过!(C++)
  6. kingbase7获取唯一索引和子分区键的view
  7. Postgresql使用coalesce实现类似oracle的NVL方法
  8. 两个常用的Infopath Service读取域值的函数
  9. HIbernate抽象出通用方法
  10. snmp的安装与配置
  11. 译林 五年级上 单词_译林版小学英语五上Unit 4 HobbiesStory time公开课优质课件教案视频教案...
  12. 医院耗材管理系统开发_12
  13. 常用值得收藏的网站/软件 持续更新中
  14. mysql tddl_TDDL思考总结
  15. pacman 查询_archlinux pacman常用命令
  16. ES数据的操作(二)
  17. F-Pairwise Modulo
  18. 品优购项目--注册页面
  19. Android SAX解析远程服务器端的xml,防止解析的时候出现空格或者标点符号再次解析的方法
  20. 分区助手扩大C盘,亲测有效

热门文章

  1. 记录某学校热水卡安全性研究
  2. python sasl_Pyhive、SASL和Python 3.5
  3. 分类变量、有序变量、数值变量差异分析(二)t检验
  4. linux mysql 1055_mysql 1055错误
  5. 领英改版变成领英中国的解决办法,完整详细版教程,亲测可用。
  6. 二层和三层、四层交换机工作原理
  7. dcos -1.7 都有哪些服务
  8. CSS反爬获取伪元素的值
  9. 非网页版微信机器人-Wechaty
  10. 华为不要php开发,华为手机开发者选项的利与弊!有些设置最好不要打开