[{
"saleName": "颜色",
"dim": 1,
"saleAttrList": [{
"imagePath": null,
"saleValue": "白色",
"skuIds": [
1, 2, 3
]
},
{
"imagePath": null,
"saleValue": "黑色",
"skuIds": [
5, 6
]
}
]
}]
dim:表明维度,saleAttrList:表明该维度下商品标签的集合,skuIds:表明当前标签下同类商品skuId。算法
1、进入商品详情页面数组
1.获取后台数据,添加状态,当前sku为选中状态ide
2.遍历计算出,同类sku对应的标签数组spa
3.求全部存在的路径的组合的子集,生成全部存在的路径表code
/** * 求幂积 * @param {Object} arr */ function powerset(arr) { var ps = [[]]; for (var i=0; i < arr.length; i++) { for (var j = 0, len = ps.length; j < len; j++) { ps.push(ps[j].concat(arr[i])); } } return ps; }
4.把已选择的元素添加到一个数组,当用户全部维度都选择后,才进行跳转sku,不然提示,有未选择的维度。blog
2、用户选择商品属性的点击事件事件
1.若是不可选,returnget
2.选中it
至同一dim其余为未选中io
不一样dim中若是选中,则不改变转态,其余设置为未选中
3.未选中
重置全部dim中若是选中,则不改变转态,其余设置为未选中
4.用户所选路径,去查询路径表,若是当前路径不存在,则将当前元素置灰为不可选状态
5.肯定惟一sku,跳转