URLSearchParams的大小(或长度)

时间:2017-02-10 09:37:58

标签: javascript

如何从URLSearchParams获取大小? 我找到了

Array.from(url.searchParams).length

这里的答案https://github.com/whatwg/url/issues/163

最正确的答案?

2 个答案:

答案 0 :(得分:2)

TL; DR:取决于您是否关心唯一键。

在正常情况下,searchParams是地图(唯一键),可以正常工作:

但是当searchParams不是地图时,您需要小心:

const url = new URL("protocol://domain?query=value1&query1=value2&query2=value");
console.log(Array.from(url.searchParams).length);
// Output is 3

在这种情况下,转换为数组时,该数组为 const url = new URL("protocol://domain?query=value1&query=value2&query2=value"); console.log(Array.from(url.searchParams).length); // Output is still 3。如果您希望searchParams成为地图,则可能会造成混乱。

在这种情况下,为了找到唯一键,您应该使用类似于以下的方法提取它们:

[["query", "value1"], ["query", "value2"], ["query2", "value"]]

答案 1 :(得分:0)

是的,您可以使用searchParams来获得Array.from(url.searchParams).length属性的长度:

示例:

const url = new URL("protocol://domain?query=value1&query=value2&query2=value");
const size = Array.from(url.searchParams).length

console.log(size)

您还可以使用ES6 array spread语法:

const url = new URL("protocol://domain?query=value1&query=value2&query2=value");
const size = [...url.searchParams].length

console.log(size)