downFun() {
if(this.targetSelectkeys.length<1){
return;
}
let _target_keys=[];
let targetkeyMapV={};//{key:index,...}
let targetkeyMapNum={};//{index:key,...}
let targetSelectkeyNumList=[];//[选中key的下标,...]
//循环右侧选中的列表,获取每个元素的位置
for(let i=0;i<this.target_keys.length;i++){
targetkeyMapV[this.target_keys[i]]=i;
targetkeyMapNum[i]=this.target_keys[i];
}
//循环已选择需要排序的元素,并获取具体在的位置,形成数组
for(let i=0;i<this.targetSelectkeys.length;i++){
targetSelectkeyNumList.push(targetkeyMapV[this.targetSelectkeys[i]]);
}
console.log(targetSelectkeyNumList);
//需要排序的数组,排序
targetSelectkeyNumList.sort(function(a,b){
return b-a; //向上排就 a-b
});
console.log(targetSelectkeyNumList);
//循环需要排序的数组,重排最终数组
for(let i=0;i<targetSelectkeyNumList.length;i++){
const index=targetSelectkeyNumList[i];
//最后一个不下排
if(index>=this.target_keys.length-1){ //index<1 第一个不上排
continue;
}
const index_1=index+1;
//调换元素与前一元素的位置
const tempkey=targetkeyMapNum[index_1];
targetkeyMapNum[index_1]=targetkeyMapNum[index];
targetkeyMapNum[index]=tempkey;
}
//重组列表
for(let i=0;i<this.target_keys.length;i++){
_target_keys.push(targetkeyMapNum[i]);
}
//配许后的结果输出
this.target_keys=_target_keys;
}
穿梭框单选或多选上下排序
最新推荐文章于 2024-04-16 10:09:36 发布