【问题标题】:Javascript Parse A SearchParams Query StringJavascript 解析 SearchParams 查询字符串
【发布时间】:2020-01-07 21:10:23
【问题描述】:

我们怎么可能解析下面的示例数据。

搜索参数

let urlSearchParams = new URLSearchParams(locals.filters.searchkeys)

            console.log("Search",  urlSearchParams)

Result :  { 'Year' => '2019,2018', 'Make' => 'Acura,BMW,Cadillac' }

所需的输出格式

{ '年份' : '2019,2018', '品牌' : '讴歌、宝马、凯迪拉克' }

【问题讨论】:

  • 在发布问题之前您是否知道URLSearchParams.entries()developer.mozilla.org/en-US/docs/Web/API/URLSearchParams/… 在我看来,问题和接受的答案都遗漏了这个细节。
  • @ChristopherTaleck 回答确实提到并使用了条目,你能告诉我你似乎缺少什么吗?
  • 是的,确实在sn-p中,但答案不清楚:“使用条目方法的条目”在您不了解URLSearchParams.entries()时有点混乱,您还指的是类似地命名为Object.fromEntries。在我看来,一个指向 MDN 的链接会很有效。
  • @ChristopherTaleck You can get entries using entries method, and then build object using Object.fromEntries, 答案中的第一句话谈论了如何从 Urlsearchparams 获取条目,不是吗????
  • 抱歉,我在问题的任何地方都没有看到 entries 这个词。

标签: javascript node.js json parsing format


【解决方案1】:

您可以使用entrys方法获取条目,然后使用Object.fromEntries构建对象

let searchQuery = `Year=2019&Make=Acura,BMW,Cadillac`
let searchParams = new URLSearchParams(searchQuery)

let obj = Object.fromEntries([...searchParams.entries()])

console.log(obj)

如果您的环境不支持 Object.fromEntries,您可以使用 reduce

let searchQuery = `Year=2019&Make=Acura,BMW,Cadillac`
let searchParams = new URLSearchParams(searchQuery)

let obj = [...searchParams.entries()].reduce((op,[key,value])=>{
  op[key] = value
  return op
},{})

console.log(obj)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-06
    • 2019-05-03
    • 2011-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多