在公司系统中使用了Taobao网的API,
在发布产品的功能上做了大量的分析
Taobao网发布产品最复杂的要数商品的属性组合上
为了将我们的系统和Taobao网API完全吻合我们着重研究了商品属性
Taobao网商品类目有很多,类别分三个级别,有部分有四级
每一个终级子类别对应了很多属性,比如一个内存 分类型DDR2 DDR3 容量512M 1GB
属性又分三种类别
1.关键属性
2.非关键
3.销售属性
如上图所示 这里列出了 "类目:女士内衣/男士内衣/家居服>>文胸" 关键属性和非关键属性
如上图所示 这里列出了 "类目:女士内衣/男士内衣/家居服>>文胸" 销售属性
这里我们重点讲销售属性如何组合
1.销售属性组合是按正向交叉来组合,不可变换顺序
2.每个组合必需包括所有销售属性中任何一个属性值
举列说明
1.军绿色 : 70AA
2.军绿色 : 70A
3.天蓝色 :70A
如果按 70A : 天蓝色 这样排列在系统内是错误的,虽然人们可以理解
这里每一个组合购成了一个明确的可以出售的商品,所以叫他们销售属性
哪么如何计算组合呢,我们使用了以下计算方式
View Code
1 var list =new Array();
2
3 list[0] =new Array();
4 list[0][0] ="depth1";
5 list[0][1] =new Array();
6 list[0][1][0] ="112";
7 list[0][1][1] ="114";
8
9 list[1] =new Array();
10 list[1][0] ="depth2";
11 list[1][1] =new Array();
12 list[1][1][0] ="116";
13 list[1][1][1] ="118";
14
15 list[2] =new Array();
16 list[2][0] ="depth3";
17 list[2][1] =new Array();
18 list[2][1][0] ="117";
19 list[2][1][1] ="119";
20
21 list[3] =new Array();
22 list[3][0] ="depth4";
23 list[3][1] =new Array();
24 list[3][1][0] ="201";
25 list[3][1][1] ="204";
26
27 list[4] =new Array();
28 list[4][0] ="depth5";
29 list[4][1] =new Array();
30 list[4][1][0] ="301";
31 list[4][1][1] ="304";
32
33 var depth =0;
34 var par ="";
35 var heap =new Array();
36
37 function foreach(list,depth,par,heap)
38 {
39 for(var i=0;i<list[depth][1].length;i++)
40 {
41 var last = (par !=""? par +":" : "");
42 if(depth<(list.length-1))
43 {
44 foreach(list,depth +1, last+ list[depth][1][i],heap);
45 }
46 else
47 {
48 heap.push(last + list[depth][1][i])
49 }
50 }
51 }
52
53 foreach(list,depth,par,heap)
54 alert(heap.length);
55 alert(heap);
使用一个递归方法算出一个按正向组合的销售属性;
如有更好的方法请同学们多多拍砖!