Python语言技术文档

微信小程序技术文档

php语言技术文档

jsp语言技术文档

asp语言技术文档

C#/.NET语言技术文档

html5/css技术文档

javascript

点击排行

您现在的位置:首页 > 技术文档 > javascript技巧

原生JS实现$.param() 函数的方法

来源:中文源码网    浏览:351 次    日期:2024-04-30 22:10:37
【下载文档:  原生JS实现$.param() 函数的方法.txt 】


原生JS实现$.param() 函数的方法
由于遇到相关序列化的问题,但是vue项目中由于减少队jquery引用的限制,导致不能用$.param来序列化参数,所以写了如下方法用来解决相关问题,但由于考虑不全,可能存在判断不全或者代码冗余等情况,希望多提意见,多多改善
var personObj = {
name:'cheny0815',
age:24,
c:[{
id:1,
name:2
},{
id:2,
name:3
}],
other:{
a:1,
b:{
c:2,
d:{
a:1,
b:{
e:1,
f:2
}
}
}
},
}
var nextStr = '';
function changeDataType(obj){
let str = ''
if(typeof obj == 'object'){
for(let i in obj){
if(typeof obj[i] != 'function' && typeof obj[i] != 'object'){
str += i + '=' + obj[i] + '&' ;
}else if (typeof obj[i] == 'object'){
nextStr = '';
str += changeSonType(i, obj[i])
}
}
}
return str.replace(/&$/g, '');
}
function changeSonType(objName, objValue){
if(typeof objValue == 'object'){
for(let i in objValue){
if(typeof objValue[i] != 'object'){
let value = objName + '[' + i + ']=' + objValue[i];
nextStr += encodeURI(value) + '&';
}else{
changeSonType(objName + '[' + i + ']', objValue[i]);
}
}
}
return nextStr;
}
var resultParam = $.param(personObj);
var resultMyself = changeDataType(personObj);
document.write('resultMyself===>' + resultMyself + '

')
document.write('resultParam ===>' + resultParam + '

')
document.write('resultMyself === resultParam ===>' + (resultMyself === resultParam))
结果如下:
总结
以上所述是小编给大家介绍的原生JS实现$.param() 函数,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对中文源码网网站的支持!

相关内容