如何从URLSearchParams获取大小? 我找到了
Array.from(url.searchParams).length
这里的答案https://github.com/whatwg/url/issues/163
最正确的答案?
答案 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)