写在开头
废话不多说
场景
在购买商品时候,需要选择各种属性参数组成一条 sku 数据,然后在 sku 库里查找有无该商品。
在点击一个属性参数的时候,需要判断其他的参数是否可以点击
举例:
【 型号、容量、年份】
型号:5W、4w、3w
容量:1L、2L、3L
年度:2018、2019、2020
排列组合有 3*3*3= 27 种。可是有商品的sku组合只有以下:
[5w, 1L, 2018]
[4w, 2L, 2020]
[3w, 3L, 2019]
初始化默认数据: [5w,1L,2018]
要判断 4w 是否可选?就需要用 4w 和其他两个已经选中的参数组合成一个 sku(4w-1L-2018),然后对比 sku 库里有没有就可以了。
思路没有问题的,我保证。
但是出现了以下情况:(实线边框代表组合无法匹配到商品)
那是以为我看在对比 sku 库的时候,之对比了三条完整 sku。
这时候请大家看这里: “ 冥集 ” 了解一下。
白话文: 求一个集合到所有子集
举例:5w - 1L - 2018 的所有子集是:
.5w
.1L
.2018
.5w-1L
.5w-2018
.1L-2018
.5w-1L-2018
献上阿木写的取冥集的方法:
有了这个大集合,就不怕不怕啦。
以下情况:
判断 5W 是否可点? 拿 5w - 1L 在集合里查找是否存在
判断 2L 是否可点? 拿 2L 在集合里查找是否存在
判断 2018 是否可点? 拿 1L - 2018 在集合里查找是否存在
啊哦,这样就完美解决咯!
其实代码大家都会写,重要的思路!!!
写在结尾
请看开头