iterable
{Iterable} 元素是键值对的迭代对象。
以一种类似于 [Map
] 的构造函数的迭代映射方式实例化一个新的 URLSearchParams
对象。
iterable
可以是一个 Array
或者任何迭代对象。
这就意味着 iterable
能够是另一个 URLSearchParams
,这种情况下,构造函数将简单地根据提供的 URLSearchParams
创建一个克隆 URLSearchParams
。
iterable
的元素是键值对,并且其本身也可以是任何迭代对象。
允许重复的键。
let params;
// 使用数组。
params = new URLSearchParams([
['user', 'abc'],
['query', 'first'],
['query', 'second']
]);
console.log(params.toString());
// 打印 'user=abc&query=first&query=second'
// 使用 Map 对象。
const map = new Map();
map.set('user', 'abc');
map.set('query', 'xyz');
params = new URLSearchParams(map);
console.log(params.toString());
// 打印 'user=abc&query=xyz'
// 使用 generator 函数。
function* getQueryPairs() {
yield ['user', 'abc'];
yield ['query', 'first'];
yield ['query', 'second'];
}
params = new URLSearchParams(getQueryPairs());
console.log(params.toString());
// 打印 'user=abc&query=first&query=second'
// 每个键值对必须有两个元素。
new URLSearchParams([
['user', 'abc', 'error']
]);
// 抛出 TypeError [ERR_INVALID_TUPLE]:
// Each query pair must be an iterable [name, value] tuple