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