向URL添加参数,将数组放入查询字符串中

问题描述 投票:4回答:3

目的

我建立了一个互动平台,人们可以选择六名球员组成全明星队。当他们单击“分享到Twitter”时,我希望拥有一个包含所有六个玩家的参数的URL,例如website.com/?playerName=picked?playerName=picked,以便人们可以共享他们的团队

问题

  • 将参数附加到URL的最佳方法是什么?
  • 如何将数组放入查询字符串?
javascript jquery arrays url query-string
3个回答
4
投票

您可以直接在网址中使用数组,但是您需要将数组序列化为字符串。像这样player[]=one&player[]=two

这里有一个自动化的小功能。

使用url时,应始终使用encodeURIComponent编码任何非url友好字符。播放器是一个数组,因此我们在其上映射并获得一个已编码的新数组。

之后,我们只需要将数组与&结合在一起>

const players = [
  'player Name 1',
  'playerName2',
  'playerName3'
]

const parameterizeArray = (key, arr) => {
  arr = arr.map(encodeURIComponent)
  return '?'+key+'[]=' + arr.join('&'+key+'[]=')
}

console.log(parameterizeArray('player', players))

编辑

唯一的区别是函数的声明风格,其他都是标准的ES5

function parameterizeArray(key, arr) {
  arr = arr.map(encodeURIComponent)
  return '?'+key+'[]=' + arr.join('&'+key+'[]=')
}

0
投票

我不确定您是否可以对数组进行编码,如果可以的话,它可能是特定于框架的


0
投票

清洁工:

© www.soinside.com 2019 - 2024. All rights reserved.