我有一个数组:
var arr[];
我已为此(x
和y
值)
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。
答案 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);
参考文献: