实际问题:将一个有记录选择顺序的下拉复选框 改成不记录顺序的下拉复选框。
出发点:因为组件已经很庞大了,而且这只是一个特例问题,改组件的代价太大,因此转换需求,当提交复选框的时候将复选的结果数组根据options的顺序排序。
需求:将一个数组按照另一个数组的顺序排序
参照顺序数组:
[
{
"label": "",
"value": ""
},
{
"label": "思明区",
"value": "350203"
},
{
"label": "湖里区",
"value": "350206"
},
{
"label": "海沧区",
"value": "350205"
},
{
"label": "集美区",
"value": "350211"
},
{
"label": "同安区",
"value": "350212"
},
{
"label": "翔安区",
"value": "350213"
}
]
现有数组:
["350211", "350205","350206"]
排序代码:
toOrderArray(options,selectItems){
let optionValues=options.map(function(a){return a["value"]});
return selectItems.sort(function(a,b){
return optionValues.indexOf(a)-optionValues.indexOf(b);
})
}
结果:
["350206", "350205","350211"]