从数组构造URL

时间:2014-09-30 16:12:30

标签: javascript jquery

我有一个数组:

var arr[];

我已为此(xy值)

插入了许多坐标
arr[0]=12+'#'+32;
arr[1]=34+'#'+87;
arr[2]=90+'#'+89;

所以当我打印这个数组时,我得到一个像,12#32,34#87,90#89这样的字符串。这些是坐标。我如何打破这些并将其附加到格式为的字符串。

http://host/app?x1=12&y1=32&x2=32&y2=87&x3=90&y3=89

以上网址可以有很多参数。如何从我的数组构建上述URL。

3 个答案:

答案 0 :(得分:0)

您可以构建循环遍历数组的查询字符串(此处我使用.each())并使用.split()函数分隔您的坐标。

var qs;
$.each(arr,function(i,v){
  qs += "x" + i + "=" + v.split("#")[0] + "&y" + i + "=" + v.split("#")[1] + ((i+1)!=arr.length) ? "&" : "";      
});

var url = "http://host/app?" + qs;

答案 1 :(得分:0)

与上面的答案类似,循环,分割哈希,将片段添加到查询字符串,如果你不在最后,则附加&符号。

for(var c = 0, query = "http://host/app?", coordinate; c < arr.length; c++) {
  coordinate = arr[c].split("#");
  query += "x" + (c + 1) + "=" + coordinate[0] + "&";
  query += "y" + (c + 1) + "=" + coordinate[1];
  if(c < arr.length - 1) query += "&";
}

答案 2 :(得分:0)

我能想到的最简单的方法是:

var arr = [12+'#'+32, 34+'#'+87, 90+'#'+89],
    url = 'http://host/app',
    params = [], temp;

arr.forEach(function (a) {
    temp = a.split('#');
    params.push('x=' + temp[0] + 'y=' + temp[1]);
});

url += params.join('&');

console.log(url);

var arr = [12+'#'+32, 34+'#'+87, 90+'#'+89],
    url = 'http://host/app',
    params = [], temp;

arr.forEach(function (a) {
    temp = a.split('#');
    params.push('x=' + temp[0] + 'y=' + temp[1]);
});

url += params.join('&');

console.log(url);

参考文献: