localeCompare() 方法
localeCompare() 方法比较当前语言环境中的两个字符串。
它返回一个数字,该数字指示元素是在排序顺序中出现在给定字符串之前、之后还是等于给定字符串。
sort() 方法
sort() 方法对数组元素进行原地排序并返回排序后的数组。
默认情况下,排序顺序是升序,建立在将元素转换为字符串,然后比较它们的 UTF-16 代码单元值序列的基础上。
数字排序可能不正确,因为 sort() 方法按以下顺序对数字进行排序:“35”大于“225”,因为“3”大于“2”。
JavaScript 数组有 sort() 方法,它按字母顺序对数组元素进行排序。
sort() 方法接受一个函数,该函数比较 Array.sort([comparer]) 的两个项目。
let elements = ['Javascript', 'Css', 'Html'];
elements.sort(function (a, b) {
return a.length - b.length;
});
console.log(elements);
sort() 方法将根据元素的值对项目进行排序,以防比较函数被省略:
- 如果比较值小于零,sort() 方法将排序到比 b 低的索引。
- 如果比较值大于零,sort() 方法将 b 排序到比 a 低的索引。
- 如果比较返回零,则 sort() 方法认为 a 等于 b 并且不改变它们的位置。
假设你有两个元素 a 和 b 并且想要比较 a.firstname 和 b.firstname,那么操作如下:
a = {
firstname: 'John'
};
b = {
firstname: 'Jack'
};
users = [a, b];
users.sort(function (a, b) {
if (a.firstname < b.firstname) {
return -1;
}
if (a.firstname > b.firstname) {
return 1;
}
return 0;
})
console.log(users);
如果比较字符串包含 Unicode 字符,我们可以使用 localeCompare 函数,该函数内置支持特定于语言的排序顺序、忽略大小写、变音符号、ß 等符号:
let elements = ['Javascript', 'Css', 'Html']; arr = elements.sort((a, b) => a.localeCompare(b)); console.log(arr);
日期:2020-06-02 22:16:26 来源:oir作者:oir
