摘要:開始解題創(chuàng)建個空字符串,儲存輸出的內(nèi)容把傳入的參數(shù)用分割,獲取第二部分,也就是后面的字符串創(chuàng)輸出數(shù)組中的元素把號后面的字符串用分割實際上就分割段,不做分割把前面的字符串用分割,最高允許分割段。
要求:
1、只能在指定的位置填寫自己的代碼,本文件里的其他代碼不能修改
2、所有題目都不允許添加全局變量名
3、本文件應(yīng)該能在firebug的console里正常執(zhí)行,并輸出結(jié)果
4、代碼最優(yōu)化,效率最高
5、代碼注釋明確
function urlParser(s){ //+++++++++++答題區(qū)域+++++++++++ //+++++++++++答題結(jié)束+++++++++++ } try{ var url1 = "http://www.abc.com/m/s/#page/2/?type=latest_videos&page_size=20"; var url2 = "http://www.abc.com/m/s/#type=latest_videos&page_size=20"; var url3 = "http://www.abc.com/m/s/#page?type=latest_videos&page_size=20"; console.group(); console.info( urlParser(url1) ); console.info( urlParser(url2) ); console.info( urlParser(url3) ); console.groupEnd(); /*------[執(zhí)行結(jié)果]------ ["page", "2", { "type": "latest_videos", "page_size": 20 }] [{ "type": "latest_videos", "page_size": 20 }] ["page", { "type": "latest_videos", "page_size": 20 }] ------------------*/ }catch(e){ console.error("執(zhí)行出錯,錯誤信息: " + e); }
讓我們先來梳理下解題思路:
首先觀察url1,url2,url3的區(qū)別。
然后觀察執(zhí)行結(jié)果的3段輸出內(nèi)容。
最后找url1,url2,url3對應(yīng)的輸出內(nèi)容的聯(lián)系。
開始解題:
function urlParser(s){ var a = []; /*創(chuàng)建個空字符串,儲存輸出的內(nèi)容*/ var _w = s.split("#")[1]; /*把傳入的參數(shù)url1...用#分割,獲取第二部分,也就是#后面的字符串*/ var _json = {}; /*創(chuàng)輸出數(shù)組中的json元素*/ var _q = _w.split("?"); /*把#號后面的字符串用?分割,實際上就url1,url3分割2段,url2不做分割*/ var _s = _q[0].split("/",2); /*把?前面的字符串用/分割,最高允許分割2段。*/ for(var i=0;i<_s.length;i++){ /*遍歷#號到?號之間的數(shù)組*/ if(_q.length === 2){ /*當(dāng)_q的長度為2時執(zhí)行,也就是不執(zhí)行傳入url2*/ a.push(_s[i]); /*將url1和url3中#號到?號之間的數(shù)組從后依次傳入a*/ } } if(_q[1]){ /*如果參數(shù)中有?號,執(zhí)行以下代碼(url1,url3)*/ var _a = _q[1].split("&"); /*將?號分割的字符串第二段中再用&號分割*/ for(var j=0;j<_a.length;j++){ /*遍歷?號后面的[type=latest_videos,page_size=20]長度為2的數(shù)組*/ var _e = _a[j].split("="); /*將數(shù)組[type=latest_videos,page_size=20],用=號分割,輸出[type,latest_videos],[page_size,20]*/ _json[_e[0]] = _e[1]; /*把等號前面的與后面的分別用屬性和屬性值來傳入_json對象*/ } }else{ /*否則執(zhí)行(url2)*/ var _a = _q[0].split("&"); /*將?號分割的字符串第一段中再用&號分割*/ for(var k=0;k<_a.length;k++){ var _e = _a[k].split("="); _json[_e[0]] = _e[1]; } } a.push(_json); /*將_json傳入a數(shù)組中*/ return JSON.stringify(a); /*函數(shù)最終返回數(shù)組a*/ }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/81746.html
摘要:要求只能在指定的位置填寫自己的代碼,本文件里的其他代碼不能修改所有題目都不允許添加全局變量名本文件應(yīng)該能在的里正常執(zhí)行,并輸出結(jié)果代碼最優(yōu)化,效率最高代碼注釋明確答題開始答題結(jié)束執(zhí)行結(jié)果 要求:1、只能在指定的位置填寫自己的代碼,本文件里的其他代碼不能修改2、所有題目都不允許添加全局變量名3、本文件應(yīng)該能在firebug的console里正常執(zhí)行,并輸出結(jié)果4、代碼最優(yōu)化,效率最高5、...
摘要:另外,原題還有字?jǐn)?shù)限制的,只有在字?jǐn)?shù)小于并且結(jié)果正確時才可以滿分。插入節(jié)點操作的可以使用和方法,隨便用一個都行。但是,這題有兩個限制條件優(yōu)雅的方式前個元素。 1.有一個長度未知的數(shù)組a,如果它的長度為0就把數(shù)字1添加到數(shù)組里面,否則按照先進(jìn)先出的隊列規(guī)則讓第一個元素出隊。 分析:這道題主要是考核了數(shù)組的隊列方法和棧方法。另外,原題還有字?jǐn)?shù)限制的,只有在字?jǐn)?shù)小于30并且結(jié)果正確時才可以滿...
摘要:另外,原題還有字?jǐn)?shù)限制的,只有在字?jǐn)?shù)小于并且結(jié)果正確時才可以滿分。插入節(jié)點操作的可以使用和方法,隨便用一個都行。但是,這題有兩個限制條件優(yōu)雅的方式前個元素。 1.有一個長度未知的數(shù)組a,如果它的長度為0就把數(shù)字1添加到數(shù)組里面,否則按照先進(jìn)先出的隊列規(guī)則讓第一個元素出隊。 分析:這道題主要是考核了數(shù)組的隊列方法和棧方法。另外,原題還有字?jǐn)?shù)限制的,只有在字?jǐn)?shù)小于30并且結(jié)果正確時才可以滿...
摘要:另外,原題還有字?jǐn)?shù)限制的,只有在字?jǐn)?shù)小于并且結(jié)果正確時才可以滿分。插入節(jié)點操作的可以使用和方法,隨便用一個都行。但是,這題有兩個限制條件優(yōu)雅的方式前個元素。 1.有一個長度未知的數(shù)組a,如果它的長度為0就把數(shù)字1添加到數(shù)組里面,否則按照先進(jìn)先出的隊列規(guī)則讓第一個元素出隊。 分析:這道題主要是考核了數(shù)組的隊列方法和棧方法。另外,原題還有字?jǐn)?shù)限制的,只有在字?jǐn)?shù)小于30并且結(jié)果正確時才可以滿...
摘要:收集的一些前端面試題從面試題發(fā)現(xiàn)不足,進(jìn)而查漏補缺,比通過面試更難得及各大互聯(lián)網(wǎng)公司前端筆試面試題篇及各大互聯(lián)網(wǎng)公司前端筆試面試題篇面試題個和個經(jīng)典面試題前端開發(fā)面試題如何面試前端工程師很重要個變態(tài)題解析如何通過餓了么面試輕 收集的一些前端面試題 從面試題發(fā)現(xiàn)不足,進(jìn)而查漏補缺,比通過面試更難得 1 BAT及各大互聯(lián)網(wǎng)公司2014前端筆試面試題--Html,Css篇 2 BAT...
閱讀 1801·2021-11-18 10:02
閱讀 3530·2021-11-16 11:45
閱讀 1790·2021-09-10 10:51
閱讀 2111·2019-08-30 15:43
閱讀 1379·2019-08-30 11:23
閱讀 1489·2019-08-29 11:07
閱讀 1895·2019-08-23 17:05
閱讀 1415·2019-08-23 16:14