直接上代码
用于类似程序的demo
要求,待处理的数据范围是0-n连续的整数,比如处理n个数,其中最大的数不能大于n
let str=["1_这是本书","3_第二本书","5_测试文件","4_就到这","2_行不行"];
let list=new Array();
for(let i=0;i<str.length;i++){
let temp=str[i].split("_");
list[i]=temp;
}
console.log("-------"+list);
let num=str.length;
//此方法的前提是待处理中没有相同的数字
let result=new Array();
for(let j=1;j<num+1;j++){
let k=0;
while(j!=parseInt(list[k][0])){
k++;
}
//当遇到相同数字时说明当前K位置代表的数字和基准相匹配
//将结果存入结果数组
result.push(list[k]);
//删除测试数组中已匹配的元素;
list.splice(k,1);
}
console.log("*******"+result);
待处理的数据范围是不连续的整数
let str=["1_这是本书","3_第二本书","5_测试文件","4_就到这","2_行不行"];
let list=new Array();
for(let i=0;i<str.length;i++){
let temp=str[i].split("_");
list[i]=temp;
}
console.log("-------"+list);
let num=str.length;
//此方法的前提是待处理中没有相同的数字
let result=new Array();
if(list.length>0&&list[0]!=""){
let maxnum=0;
for(let n=0;n<list.length;n++){
let tempn=parseInt(list[n][0]);
maxnum>tempn?maxnum=maxnum:maxnum=tempn;
}
for(let j=1;j<maxnum+1;j++){
let k=0;
while(j!=parseInt(list[k][0])){
k++;
}
//当遇到相同数字时说明当前K位置代表的数字和基准相匹配
//将结果存入结果数组
result.push(list[k]);
//删除测试数组中已匹配的元素;
list.splice(k,1);
}
}
console.log("*******"+result);