如何从数组数据中创建url参数?

时间:2015-09-23 08:55:32

标签: javascript jquery

我们可以说我可以获得如下数据:

data = ["s=abc","t=123","a=567","b=789"]

我如何处理这些数据以获得类似&#34的网址字符串??s = abc& t = 123& a = 567& b = 789"

我写了一些代码

for(i=0;i<data.length;i++){
  data[i].split("=");
}

但坚持了一段时间。

任何人都可以帮助我吗? 顺便说一句,data.length每次都可能不同。

感谢。

6 个答案:

答案 0 :(得分:3)

  

如何处理这些数据以获取"?s=abc&t=123&a=567&b=789"

等网址字符串

使用join作为粘合剂&。这将使用&作为粘合来连接数组的元素,然后您可以将?添加到结果字符串中。

var data = ["s=abc", "t=123", "a=567", "b=789"];
var params = '?' + data.join('&');

console.log(params);
document.write(params);

注意:如果您的参数包含特殊字符,则可以使用encodeURIComponent对其进行编码。

答案 1 :(得分:1)

如果您需要对参数进行网址编码,请使用$.param( data);

http://api.jquery.com/jquery.param/

答案 2 :(得分:1)

您可以使用连接功能。它将数组转换为字符串然后添加&amp;作为分隔符然后连接“?”;

app:layout_behavior="@string/appbar_scrolling_view_behavior"

答案 3 :(得分:1)

循环遍历您的数据数组并使用每个元素连接&符号'&',并使用'&'删除最后slice

data = ["s=abc","t=123","a=567","b=789"];
    link="?";
    for(i=0;i<data.length;i++){
      link+=data[i]+"&";
    }
    link=link.slice(0,-1);
    console.log(link);

答案 4 :(得分:0)

如果要对值进行编码 - 如果值尚未编码

&#13;
&#13;
data = ["s=abc", "t=123", "a=567", "b=7 89"]
var params = data.map(function(item) {
  return item.replace(/=(.*)/, function(m, value) {
    return '=' + encodeURIComponent(value)
  })
}).join('&');
snippet.log(params)
&#13;
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
&#13;
&#13;
&#13;

答案 5 :(得分:0)

我会使用哈希来表示键/值对,并利用jQuery将参数序列化为可以使用的字符串。

var serializedParams = {
  s: 'abc',
  t: '123',
  a: '567',
  b: '789'
};

$.param(serializedParams);

// Returns:
// s=abc&t=123&a=567&b=789

或者您可以自己手动构建字符串。

var data = ["s=abc","t=123","a=567","b=789"];

data.join('&');

// Returns:
// s=abc&t=123&a=567&b=789