Javascript字符串排序
Javascript String 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++){
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;
};
当给定一个数字数组时,函数会按数字顺序排列值,但我感到困惑的是,这个函数是如何按字母顺序排列字符串数组的。我知道javascript中有一个数组sort()方法,但我正在努力完全理解这个概念。感谢您的帮助:)!
>
可以比较字符串,因此即使数组成员是字符串,函数也能工作。
'a'>'b' === false
'c'>'b' === true
您的函数将对数字和字符串进行排序,因为JavaScript将尝试使用>运算符比较任何两个变量,并尽最大努力确保比较有意义。它甚至会尽可能地将操作数的类型强制为"类似"类型。因此,如果你比较"a">1,它会在进行比较之前将1变成字符串"1"。但如果你比较"0">1,我相信在进行比较之前,它会把"0"变成0。这种类型转换在JavaScript中一直发生,导致一些非常奇怪的结果,例如"false"===true:)
如果你想比较字符串,你可以使用".charCodeAt()(获取字符的ascii号),但我会直接比较这两个字符串,因为"before"<"after"===false
相关文章:
- Javascript排序字符串或数字
- 根据另一个数组对数组进行排序,包括位置和字符串[ES6]
- 根据Javascript中的字符串值对数组的数组进行排序
- Sencha Ext JS排序标准以字符串而不是JSON的形式发送
- 可以用javascript对包含数字的字符串进行排序
- 如何对字母数字字符串值进行排序
- AngularJS/Javascript:使用运算符对字符串进行排序
- 按字母顺序、数字顺序和特殊字符对字符串数组进行排序
- 通过自定义字母javascript对字符串进行排序
- 如何对姓氏进行排序,格式化电话号码,并返回一个包含对象数组值的字符串
- Javascript数组排序速度受字符串长度的影响
- jQuery - 本地存储排序字符串化对象顺序
- 使用日期格式排序字符串数组
- 在javascript中按两个或多个子字符串排序字符串数组
- Javascript用优先级排序字符串数组
- 如何使用javascript排序字符串数字
- AngularJS将css在比较后改为自排序字符串
- Angularjs ng-repeat按数字顺序排序字符串数组
- 按升序和降序排序字符串日期数组
- 如何将关联数组转换为排序字符串数组