现有如下数组
var a = ['ZCOLOR','ZSIZE']
var b = [{ZCOLOR:"001",ZCOLORTEXT:"白色",ZSIZE36:"36",ZSIZE38:"38",ZSIZE40:"40},{ZCOLOR:"002",ZCOLORTEXT:"黑色",ZSIZE36:"36",ZSIZE38:"38",ZSIZE40:"40}]
想要得到如下数组
是一个二维数组,里面有6个数组 也就是 颜色2种,尺寸3种 2*3 = 6
这个是后台规定的表名 是固定的
拓展,如果
var a = ['ZCOLOR','ZSIZE','ZBX']
var b = [{ZCOLOR:"001",ZCOLORTEXT:"白色",ZSIZE36:"36",ZSIZE38:"38",ZSIZE40:"40,ZBX:'A'},
{ZCOLOR:"001",ZCOLORTEXT:"白色",ZSIZE36:"36",ZSIZE38:"38",ZSIZE40:"40,ZBX:'B'},{ZCOLOR:"002",ZCOLORTEXT:"黑色",ZSIZE36:"36",ZSIZE38:"38",ZSIZE40:"40,ZBX:'A'},
{ZCOLOR:"002",ZCOLORTEXT:"黑色",ZSIZE36:"36",ZSIZE38:"38",ZSIZE40:"40,ZBX:'B'}]
那么 得到一个二维数组里面就有2x3x2= 12个 如图
碰到后台这么传输数据,实在有点头大,希望寻求帮助。
说明:对于这样的需求,我是这样理解的:选项组是以颜色为分组标识,每个颜色下面存在不同的SIZE选项或是其他选项,通过选择某一颜色,确定接下来哪些选项是可以选择的。如果我对你需求的理解无误,那就说明一个选项组可以以颜色表示ZCOLOR作为这个分组的唯一ID标识,接下来就是基于ZCOLOR进行打组了。
代码如下:
你将会得到用于显示的数据字典
spiltFields
:和用于查询的数据字典
formatedData
:接下来的一切都好办了,不管你的
b
数据源如何变,只要基于配置a
和idFlag
的设置,你就能得到友好访问的数据,最后你就根据后端的传值格式传值就行了。由于你们后端格式是固定的,建议你在前端也创建一个map与之对应,这样更方便后续配置维护。
代码手写,你可能需要自己改造优化一下,大致思路就是这样。