欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

js把数组拼接字符串

程序员文章站 2022-06-16 12:39:42
...

总所周知,直接传数组给后端,很定是有问题的,办法有三种:

1、如果你是使用jquery 

那么直接用$.param(str)就可以了

$(document).ready(function(){
	personObj=new Object();
	personObj.firstname="John";
	personObj.lastname="Doe";
	personObj.age=50;
	personObj.eyecolor="blue"; 
	$("button").click(function(){
		$("div").text($.param(personObj));
	});
});

2、如果你是用的非jQuery

那么我们可以自己写一个方法来实现类似于jquery.param()功能的代码:

function isFunction(obj) {
  return ({}).toString.call(obj) == '[object Function]'
}

function buildParams(prefix, obj, add) {
  if (Array.isArray(obj)) {
    obj.forEach(function(item) {
      add(prefix, item)
    })

  } else {
    add(prefix, obj)
  }
}

function param(a) {
  var prefix,
      s = [],
      add = function(key, value) {
        value = isFunction(value) ? value() : (value == null ? '' : value)
        s[s.length] = encodeURIComponent(key) + '=' + encodeURIComponent(value)
      }

  for (prefix in a) {
    buildParams(prefix, a[prefix], add)
  }

  return s.join('&').replace(/%20/g, '+')
}
之后直接调用param()方法就可以了


3、如果后端需要直接把数组序列,直接就拼接为字符串,
比如['name','age','address']的字符串需要拼接为'name,age,address'这种情况

        let List
        let arr=new Array();
        strArray.forEach(function (value, index) {
          arr.push(value);
          List=arr.join(",");
        })
直接输出list就完成了