原生JS實(shí)現(xiàn)$.param() 函數(shù)的方法
由于遇到相關(guān)序列化的問題,但是vue項目中由于減少隊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ù),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(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)如下,感興趣的朋友可以參考下,希望對大家有所幫助2013-08-08JS公共小方法之判斷對象是否為domElement的實(shí)例
下面小編就為大家?guī)硪黄狫S公共小方法之判斷對象是否為domElement的實(shí)例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-11-11Html+CSS+JS輪播圖實(shí)現(xiàn)源碼(手動輪播,自動輪播)
今天做網(wǎng)站的時候需要用上JS輪播圖代碼,而且還要求是原生的JS代碼,下面這篇文章主要給大家介紹了關(guān)于Html+CSS+JS輪播圖實(shí)現(xiàn)的相關(guān)資料,文中介紹的方法包括手動輪播和自動輪播,需要的朋友可以參考下2023-06-06javascript使用for循環(huán)批量注冊的事件不能正確獲取索引值的解決方法
這篇文章主要介紹了javascript使用for循環(huán)批量注冊的事件不能正確獲取索引值的解決方法,對比分析了出現(xiàn)問題的代碼與修改后的代碼,并給出了采用閉包實(shí)現(xiàn)的方法,具有一定的參考借鑒價值,需要的朋友可以參考下2014-12-12網(wǎng)易JS面試題與Javascript詞法作用域說明
Javascript函數(shù)在定義它們的作用域里運(yùn)行,而不是在執(zhí)行它們的作用域里運(yùn)行。2010-11-11淺談JavaScript事件綁定的常用方法及其優(yōu)缺點(diǎn)分析
下面小編就為大家?guī)硪黄獪\談JavaScript事件綁定的常用方法及其優(yōu)缺點(diǎn)分析。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-11-11