我建立了一个互动,人们可以选择六名球员来组建他们的全明星球队。当他们点击分享到Twitter时,我希望有一个包含所有六个参与者的参数的网址,例如website.com/?playerName=picked?playerName=picked
,以便人们可以分享他们的团队
答案 0 :(得分:3)
您可以直接在网址中使用数组,但是您需要将数组序列化为字符串。像这样player[]=one&player[]=two
这是一个自动化的小功能。
使用网址时,您应始终使用encodeURIComponent
对任何非网址友好字符进行编码。玩家是一个数组,所以我们映射它并获得一个已编码的新数组。
之后我们只需要使用&
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+'[]=')
}
答案 1 :(得分:2)
清洁工:
website.com/?players=player1,player2,player3,player4
然后拆分查询以获取结果:
var arrayResult = query.players.split(",")
答案 2 :(得分:0)
我不确定你是否可以编码数组,如果可以的话,它可能是特定于框架的
查询字符串的格式为?a=1&b=2&c=3&...
,添加很简单。你绝对可以传递6个玩家作为上面的参数
编辑:每个请求,查询字符串看起来像
website.com/?player1=foobar&player2=foobuz&player3=foobaz