原生JS實(shí)現(xiàn)$.param() 函數(shù)的方法
由于遇到相關(guān)序列化的問題,但是vue項(xiàng)目中由于減少隊(duì)jquery引用的限制,導(dǎo)致不能用$.param來序列化參數(shù),所以寫了如下方法用來解決相關(guān)問題,但由于考慮不全,可能存在判斷不全或者代碼冗余等情況,希望多提意見,多多改善
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 + '<br><hr>')
document.write('resultParam ===>' + resultParam + '<br><hr>')
document.write('resultMyself === resultParam ===>' + (resultMyself === resultParam))
結(jié)果如下:


總結(jié)
以上所述是小編給大家介紹的原生JS實(shí)現(xiàn)$.param() 函數(shù),希望對(duì)大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
js獲取input標(biāo)簽的輸入值實(shí)現(xiàn)代碼
input標(biāo)簽的輸入值通過js進(jìn)行獲取,部分標(biāo)簽和類是封裝在框架內(nèi)的,其效果和html標(biāo)簽差不多,具體實(shí)現(xiàn)如下,感興趣的朋友可以參考下,希望對(duì)大家有所幫助2013-08-08
JS公共小方法之判斷對(duì)象是否為domElement的實(shí)例
下面小編就為大家?guī)硪黄狫S公共小方法之判斷對(duì)象是否為domElement的實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-11-11
Html+CSS+JS輪播圖實(shí)現(xiàn)源碼(手動(dòng)輪播,自動(dòng)輪播)
今天做網(wǎng)站的時(shí)候需要用上JS輪播圖代碼,而且還要求是原生的JS代碼,下面這篇文章主要給大家介紹了關(guān)于Html+CSS+JS輪播圖實(shí)現(xiàn)的相關(guān)資料,文中介紹的方法包括手動(dòng)輪播和自動(dòng)輪播,需要的朋友可以參考下2023-06-06
刷新頁面后讓控制臺(tái)的js代碼繼續(xù)執(zhí)行
這篇文章主要介紹了刷新頁面后讓控制臺(tái)的js代碼繼續(xù)執(zhí)行,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09
javascript使用for循環(huán)批量注冊的事件不能正確獲取索引值的解決方法
這篇文章主要介紹了javascript使用for循環(huán)批量注冊的事件不能正確獲取索引值的解決方法,對(duì)比分析了出現(xiàn)問題的代碼與修改后的代碼,并給出了采用閉包實(shí)現(xiàn)的方法,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2014-12-12
網(wǎng)易JS面試題與Javascript詞法作用域說明
Javascript函數(shù)在定義它們的作用域里運(yùn)行,而不是在執(zhí)行它們的作用域里運(yùn)行。2010-11-11
JS模擬百度搜索框和選項(xiàng)卡的實(shí)現(xiàn)
本文主要介紹了JS模擬百度搜索框和選項(xiàng)卡的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-03-03
淺談JavaScript事件綁定的常用方法及其優(yōu)缺點(diǎn)分析
下面小編就為大家?guī)硪黄獪\談JavaScript事件綁定的常用方法及其優(yōu)缺點(diǎn)分析。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-11-11

