NodeJS - urlSearchParams.sort() 方法



URLSearchParams 类 的 NodeJS urlSearchParams.sort() 方法用于对查询字符串中的所有名称进行排序,排序使用稳定的排序算法完成(即将保留同名名称-值对之间的相对顺序)。此方法按升序排序。

此方法返回 undefined,要检索此方法的结果,请将排序后的查询字符串分配给 toString() 方法。

URLSearchParams API 提供了一些方法,这些方法提供了读取和写入 URL 查询的访问权限。此类在全局对象上也可用。

语法

以下是 NodeJS URLSearchParams.sort() 方法的语法


 URLSearchParams.sort()

参数

此方法不接受任何参数。

返回值

此方法返回 undefined。

以下是我们演示了 sort() 方法在不同场景中的用法的示例:

如果我们将一个包含名称-值对的查询字符串分配给 NodeJS urlSearchParams.sort() 方法,它将按名称对所有名称-值对进行排序。

在以下示例中,我们尝试对输入查询字符串中的名称-值对进行排序。


 const url = require('node:url');

const myUrl = new URL('https://www.qikepu.com?Monday=1&Thursday=4&Friday=5');
console.log("URL: " + myUrl.href);

const Params = new URLSearchParams('Monday=1&Thursday=4&Friday=5');
console.log("Query string: " + Params);

console.log(Params.sort());

console.log("The query string after sorting: " + Params.toString());

输出

正如我们在下面的输出中看到的,名称-值对都是按其名称排序的。

URL: https://www.qikepu.com/?Monday=1&Thursday=4&Friday=5
Query string: Monday=1&Thursday=4&Friday=5
undefined
The query string after sorting: Friday=5&Monday=1&Thursday=4

如果一个名称在名称-值对中多次出现,则 NodeJS sort() 方法将根据顺序将第一个出现的名称视为首先放置。

在下面的程序中,我们尝试对查询字符串中的名称-值对进行排序。


const url = require('node:url');

const myUrl = new URL('https://www.qikepu.com?1=twoe&6=six&1=one&5=five');
console.log("URL: " + myUrl.href);

const Params = new URLSearchParams('1=two&6=six&1=one&5=five');
console.log("Query string: " + Params);

console.log(Params.sort());

console.log("The query string after sorting: " + Params.toString());

输出

正如我们在下面的输出中看到的,名称 '1 在查询字符串中多次出现,但 sort() 方法认为名称 '1' 的第一次出现根据顺序排在第一位。

URL: https://www.qikepu.com/?1=twoe&6=six&1=one&5=five
Query string: 1=two&6=six&1=one&5=five
undefined
The query string after sorting: 1=two&1=one&5=five&6=six

sort() 方法将首先对整数进行排序,然后是特殊字符,然后根据 ASCII 排序顺序对字母进行排序。

在以下示例中,输入字符串中的名称/值对的名称以整数开头,其中一些名称/值对以特殊字符开头。我们正在尝试按名称对名称/值对进行排序。


const url = require('node:url');

const myUrl = new URL('https://www.qikepu.com?1=two&6=six&1=one&5=five');
console.log("URL: " + myUrl.href);

const Params = new URLSearchParams('`1=two&6=six&1=one&5=five');
console.log("Query string: " + Params);

console.log(Params.sort());

console.log("The query string after sorting: " + Params.toString());

输出

正如我们在输出中看到的,首先对以整数开头的名称进行排序,然后是特殊字符。

URL: https://www.qikepu.com/?1=two&6=six&1=one&5=five
Query string: %601=two&6=six&1=one&5=five
Undefined
The query string after sorting: 1=one&5=five&6=six&%601=two