Javascript字符串排序
当涉及到字符串时,我正试图用Javascript进行排序。 好的,我这里有一个函数:Javascript字符串排序,javascript,sorting,Javascript,Sorting,当涉及到字符串时,我正试图用Javascript进行排序。 好的,我这里有一个函数: var numericalOrder = function(array){ if(arguments.length === 0 || !Array.isArray(array)){ throw new Error(); } var anyChange; for(var i = 0; i < array.length - 1; i++){ an
var numericalOrder = function(array){
if(arguments.length === 0 || !Array.isArray(array)){
throw new Error();
}
var anyChange;
for(var i = 0; i < array.length - 1; i++){
anyChange = false;
for(var x = 0; x < array.length - 1; x++){
if(array[x] > array[x + 1]){
anyChange = true;
var temp = array[x];
array[x] = array[x + 1];
array[x + 1] = temp;
}
}
if(!anyChange){
return array;
}
}
return array;
};
var numericallorder=函数(数组){
if(arguments.length==0 | |!Array.isArray(Array)){
抛出新错误();
}
var变化;
对于(var i=0;i数组[x+1]){
anyChange=true;
var-temp=数组[x];
数组[x]=数组[x+1];
阵列[x+1]=温度;
}
}
如果(!anyChange){
返回数组;
}
}
返回数组;
};
当给定一个数字数组时,该函数将按数字顺序排列值,但我感到困惑的是,同一个函数如何能够按字母顺序排列字符串数组。我知道javascript中有一个array sort()方法,但我正试图完全理解这个概念。感谢您的帮助:)
可以比较字符串,这样即使数组成员是字符串,函数也可以工作
'a'>'b'==false
'c'>'b'==true
您的函数将对数字和字符串进行排序,因为JavaScript将尝试使用>运算符比较任意两个变量,并尽最大努力确保比较有意义。它甚至会尽可能将操作数的类型强制为“like”类型。因此,如果比较“a”>1,则在进行比较之前,它会将1转换为字符串“1”。但如果您比较“0”>1,我相信在进行比较之前,它会将“0”变成0。这种类型转换在JavaScript中经常发生,导致一些非常奇怪的结果,例如“false”==true:)如果要比较字符串,可以使用“.charCodeAt()(获取字符的ascii数),但我会直接比较这两个字符串,因为“before”<“after”===false关于使用关系运算符的类型强制的更多详细信息我认为您需要将“hasHadChange”更改为“anyChange”。是的,这是一个输入错误。哎呀!