JavaScript 中的字符串排序
JavaScript 字符串包含零个或多个带引号的字符,用于存储和操作文本。
当谈到 JavaScript 中的字符串时,有一些有用的内置方法可以帮助我们处理和操作它们。本文将向你展示如何使用内置的 JavaScript 方法对字符串数组进行排序。
JavaScript 有两种方法,sort
和 localeCompare
,它们通过改变原始字符串数组来返回一个有序的字符串数组。
sort()
方法是 JavaScript 提供的内置方法,用于对数组的元素进行排序。
这种排序是通过将元素转换为字符串来完成的。在此基础上,它将比较它们的 UTF-16
代码单元值序列。
标准顺序始终是升序
。这个方法改变了原始数组。
语法:
sort()
sort((firstEl, secondEl) => { ... } )
sort(compareFn)
sort(function compareFn(firstEl, secondEl) { ... })
参数 firstEl
和 secondEl
代表数组中需要比较和排序的两个元素。compareFn
是一个可选函数,用于定义自定义排序函数。这个方法的返回值是它就地返回排序后的数组,这意味着它改变了原始数组并将结果存储在原始数组中。
有关更多信息,请查看 sort()
方法的文档。
const osItems = ['Linux', 'Ubuntu', 'Windows', 'MacOS', 'Fedora'];
osItems.sort();
console.log(osItems);
如果我们调用 sort()
,这将根据 UTF-16
代码单元对原始数组 osItems
进行排序,并将结果存储回 osItems
数组。当你执行上面的代码时,它会给你下面的输出。
输出:
["Fedora", "Linux", "MacOS", "Ubuntu", "Windows"]
localeCompare()
方法是 JavaScript 提供的内置方法。
此方法检查引用字符串是在前面还是在后面,是否与排序顺序中的指定字符串匹配,并基于此返回数字。如果你通过其他语言环境,实际结果可能会有所不同。
语法:
localeCompare(compareString)
localeCompare(compareString, locales)
localeCompare(compareString, locales, options)
compareString
是一个必需参数,它是一个字符串,与引用字符串进行比较。
locales
表示应该使用其格式约定的语言,它是一个完全可选的参数。根据比较,如果在比较字符串之后出现引用字符串,则返回 1
,如果在比较字符串之前出现引用字符串,则返回 -1
,如果两个字符串相等,则返回 0
。
有关更多信息,请查看 localeCompare()
方法的文档。
在 sort
方法中使用 localeCompare
方法的唯一优点是它允许对非 ASCII 字符进行排序,例如 é 和 è。localeCompare
方法的语言环境和选项参数使其更准确。
const osItems = ['Linux', 'Ubuntu', 'Windows', 'MacOS', 'Fedora'];
osItems.sort((a, b) => a.localeCompare(b, 'en'));
console.log(osItems);
如果我们调用 a.localeCompare(b, 'en')
,这将比较原始数组中的 a
(参考字符串),在本例中为 osItems
,与 b
(比较字符串)使用英语语言环境。这里有趣的部分是它只返回 -1
、1
和 0
,然后 sort 方法将对这些字符串进行排序。
当你执行上面的代码块时,它将为你提供以下输出。
输出:
["Fedora", "Linux", "MacOS", "Ubuntu", "Windows"]
相关文章
Do you understand JavaScript closures?
发布时间:2025/02/21 浏览次数:108 分类:JavaScript
-
The function of a closure can be inferred from its name, suggesting that it is related to the concept of scope. A closure itself is a core concept in JavaScript, and being a core concept, it is naturally also a difficult one.
Do you know about the hidden traps in variables in JavaScript?
发布时间:2025/02/21 浏览次数:178 分类:JavaScript
-
Whether you're just starting to learn JavaScript or have been using it for a long time, I believe you'll encounter some traps related to JavaScript variable scope. The goal is to identify these traps before you fall into them, in order to av
How much do you know about the Prototype Chain?
发布时间:2025/02/21 浏览次数:150 分类:JavaScript
-
The prototype chain can be considered one of the core features of JavaScript, and certainly one of its more challenging aspects. If you've learned other object-oriented programming languages, you may find it somewhat confusing when you start
用 jQuery 检查复选框是否被选中
发布时间:2024/03/24 浏览次数:102 分类:JavaScript
-
在本教程中学习 jQuery 检查复选框是否被选中的所有很酷的方法。我们展示了使用直接 DOM 操作、提取 JavaScript 属性的 jQuery 方法以及使用 jQuery 选择器的不同方法。你还将找到许多有用的
jQuery 中的 Window.onload 与 $(document).ready
发布时间:2024/03/24 浏览次数:180 分类:JavaScript
-
本教程演示了如何在 jQuery 中使用 Window.onload 和 $(document).ready 事件。