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就完成了