87,838
社区成员




var arry=["STEWARTS RT BEER 6/4/12 NR",
"7-UP 4/6/8 CN",
"1217-UP TEN 2/12 CN",
"DIET 7-UP 4/6/8 CN",
"1a1",
"FIJI 2/4/16.9 PET",
"FIJI 6/6/300 ML",
"FIJI 24/16.9 PET",
"7-UP TEN 2/12 CN",
"217-UP TEN 2/12 CN"];
var blnCheck = false;
var i = arry.length,j;
while(i>0){
for(j=0;j<i-1;j++){
len = Math.min(arry[j].length,arry[j+1].length);
for(k=0;k<len;k++){
//若arry[j][K]为数字,j+1不为数字 交换顺序
if((48<=arry[j][k].charCodeAt()&&arry[j][k].charCodeAt()<=57)&&(arry[j+1][k].charCodeAt()<47||arry[j+1][k].charCodeAt()>57)){
blnCheck = true;
break;
}
/*若arry[j][K]为数字,j+1为数字
*或arry[j][K]不为数字,i+1不为数字
* j>j+1 交换并跳出 j<j+1不交换
*/
if(((48<=arry[j][k].charCodeAt()&&arry[j][k].charCodeAt()<=57)&&(48<=arry[j+1][k].charCodeAt()&&arry[j+1][k].charCodeAt()<=57))||(arry[j][k].charCodeAt()<47||arry[j][k].charCodeAt()>57)&&(arry[j+1][k].charCodeAt()<47||arry[j+1][k].charCodeAt()>57)){
if(arry[j][k]>arry[j+1][k]){
blnCheck = true;
break;
}else if(arry[j][k]<arry[j+1][k]){
break;
}
}
//若arry[j][K]不为数字,j+1为数字 直接跳出,不需要交换
if((arry[j][k].charCodeAt()<47||arry[j][k].charCodeAt()>57)&&(47<arry[j+1][k].charCodeAt()&&arry[j+1][k].charCodeAt()<58)){
break;
}
}
if (blnCheck) {
tempExchangVal = arry[j];
arry[j] = arry[j + 1];
arry[j + 1] = tempExchangVal;
}
blnCheck = false;
}
i--;
}
//打印结果
arry.forEach(function(e){
document.write("</br>"+e+"</br>");
});
for ( var i = 0; i < arry.length; i++ ) {
var e = arry[0];
if ( !isNaN(e.charAt(0)) ) {
arry.splice(0,1);
arry = arry.concat([e]);
}
}
代码让我这个走在路上的小白,又一次开阔了眼界,过一两天若钓不到其他好玩的答案,就把分直接送您了。 var arry=["STEWARTS RT BEER 6/4/12 NR",
"7-UP 4/6/8 CN",
"1217-UP TEN 2/12 CN",
"DIET 7-UP 4/6/8 CN",
"1a1",
"FIJI 2/4/16.9 PET",
"FIJI 6/6/300 ML",
"FIJI 24/16.9 PET",
"7-UP TEN 2/12 CN",
"217-UP TEN 2/12 CN"];
arry = arry.sort(function(a, b){
if(a< b) return -1;
if(a> b) return 1;
return 0;
});
for ( var i = 0; i < arry.length; i++ ) {
var e = arry[0];
if ( !isNaN(e.charAt(0)) ) {
arry.splice(0,1);
arry = arry.concat([e]);
}
}
console.log(arry);
arry.sort(function(a, b){
if(a< b) return -1;
if(a> b) return 1;
return 0;
})