赤峰 [切换城市] 手机浏览
赤峰写字楼租售
腾龙娱乐公司开户xbsbb510
  • 老虎
  • 18469864950
  • 3980349036
  • machengxing83@163.com
  • 61.7.229.* 泰国
知了信息网提醒您:让你提前汇款,或者价格明显低于市价,均有骗子嫌疑,不要轻易相信。
信息详情

腾龙公司直属在线客服开户微信:【xbsbb510】-腾龙娱乐官方【tl0810.com】腾龙公司在线

上面这个结构本身还是挺清晰的,merchandise.variations是一个数组,有几层选项,这个数组就有几个对象,每个对象的name就是当前层级的名字,values就是当前层级包含的选项,所以merchandise.variations可以直接拿来显示在UI上,将他们按照层级渲染成按钮就行。

上面图片中,用户选择了第一层的限量版574白粉,第二层的40,41等不存在的商品就自动灰掉了。用上面的数据结构可以做到这个功能,当用户选择限量版574白粉的时候,我们就去遍历merchandise.products这个数组,这个数组的一个项就是一个商品,这个商品上的variationMappings会有当前商品的颜色和尺码信息。对于我当前的项目来说,如果这个商品可以卖,他就会在merchandise.products这个数组里面,如果不可以卖,这个数组里面压根就不会有这个商品。比如上图的限量版574白粉,40码的组合就不会出现在merchandise.products里面,查找的时候找不到这个组合,那就会将它变为灰色,不可以点。

所以对于限量版574白粉,40这个鞋子来说,为了知道它需不需要灰掉,我需要整个遍历merchandise.products这个数组。按照前面说的11个颜色,11个尺码来说,最多会有121个商品,也就是最多查找121次。同样的要知道限量版574白粉,41这个商品可以不可以卖,又要整个遍历商品数组,11个尺码就需要将商品数组整个遍历11次。对于两层选项来说,11 * 11已经算比较多的了,每个尺码百来次运算可能还不会有严重的性能问题。但是如果再加一层选项,新加这层假如也有11个可选项,这复杂度瞬间就增加了一个指数,从O(n2)�(�2)变成O(n3)�(�3)!现在我们的商品总数是11 * 11 * 11,也就是1331个商品,假如第三层是性别,现在为了知道限量版574白粉,40,男性这个商品可不可以卖,我需要遍历1331个商品,如果遍历121个商品需要20ms,还比较流畅,那遍历1331个商品就需要220ms,这明显可以感觉到卡顿了,在某些硬件较差的设备上,这种卡顿会更严重,变得不可接受了。而且我们APP使用的技术是React Native,本身性能就比原生差,这样一来,用户可能就怒而卸载了!

我拿着上述对需求的疑问,和对性能的担心找到了产品经理,发生了如下对话:

我:大佬,我发现市面上好像没有APP支持三层选项的,这个需求是不是有问题哦,而且三层选项相较于两层选项来说,复杂度是指数增长,可能会有性能问题,用户用起来会卡的。

产品经理:兄弟,你看的都是国内的APP,但是我们这个是给外国人用的,人家外国人就是习惯这么用,咱要想卖的出去就得满足他们的需求。太卡了肯定不行,性能问题,想办法解决嘛,这就是在UI上再加几个按钮,设计图都跟以前是一样的,给你两天时间够了吧~

我:啊!?额。。。哦。。。

咱也不认识几个外国人,咱也不敢再问,都说了是用户需求,咱必须满足了产品才卖的出去,产品卖出去了咱才有饭吃,想办法解决吧!

解决方案

看来这个需求是必须要做了,这个功能并不复杂,因为三层选项可以沿用两层选项的方案,继续去遍历商品数组,但是这个复杂度增长是指数级的,即从O(n2)�(�2)变成O(n3)�(�3),用户用起来会卡。现在,我需要思考一下,有没有其他方案可以提高性能。经过仔细思考,我发现,这种指数级的复杂度增长是来自于我们整个数组的遍历,如果我能够找到一个方法不去遍历这个数组,立即就能找到限量版574白粉,40,男性对应的商品存不存在就好了。

这个具体的问题转换一下,其实就是:在一个数组中,通过特定的过滤条件,查找符合条件的一个项。嗯,查找,听起来蛮耳熟的,现在我之所以需要去遍历这个数组,是因为这些查找条件跟商品间没有一个直接的对应关系,如果我能建立一个直接的对应关系,不就可以一下就找到了吗?我想到了:查找树。假如我重组这些层级关系,将它们组织为一颗树,每个商品都对应树上的一个叶子节点,我可以将三层选项的查找复杂度从O(n3)�(�3)降到O(1)�(1)。

两层查找树

如果您觉得上面关于“腾龙娱乐公司开户xbsbb510”描述资料还不够全,请联系老虎获取赤峰写字楼租售更详细资料,联系老虎时请说明是在【知了信息网】看到的信息! 你也可以发布写字楼租售信息让更多买家主动联系您!
本页链接:http://chifeng.zlfind.com/xiezilouzushou/13757420.html
您可能感兴趣
  • 2024-12-28
    腾龙公司平台是缅甸老街最大一家实体公司网址xsj115.cc
    作为缅甸最早营业的红蓝公司,【腾龙】是怎么样的?在娱乐及资金方面,玩家可以完全不用担心。作为最早在缅甸当地营业的红蓝公司,无论是在当地或是在国内,其知名度和信誉还是非常理想的。目前公司采用的是现场同步...
  • 2024-12-27
    首页-新百/胜公司网址xs8010.com
    第一步腾龙TL99521.com(威(ITL99522)新百盛xs8010.com打开浏览器输入注册下载在登录/注册页面,找到:注册会员:进入注册页面后,填写必要的个人信息,如用姓名,现在你已经正式成...
  • 2024-12-16
    关于腾龙公司洗码结算不到账怎么联系直属
    第一步:添加负/责/人威24126886注/册官/网tl99381.com。相传,汉字是由一个叫仓颉的人所创,距今已有几千年的历史。《吕氏春秋·君守篇》亦记载有:“奚仲作车,仓颉作书,后稷作稼,皋陶作...
  • 2024-12-09
    腾龙公司大堂经理线上业务负责人联系微信
    公司介绍经理微信:86562423腾龙-公司官方-网址:www.TL99526.com在我们平台,注册会员将开启一段独特而精彩的旅程,流程如下。第一步:打开相关平台APP或应用程序加载进入。第二步:在...
  • 2024-12-09
    腾龙娱乐公司开户xbsbb510
    腾龙公司直属在线客服开户微信:【xbsbb510】-腾龙娱乐官方【tl0810.com】腾龙公司在线上面这个结构本身还是挺清晰的,merchandise.variations是一个数组,有几层选项,这...
小贴士:本页信息由用户及第三方发布,真实性、合法性由发布人负责,请仔细甄别。