亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

有關放入數組元素問題

有關放入數組元素問題

呼如林 2018-12-06 23:02:01
題目:請編寫一個JavaScript函數 parseQueryString,它的用途是把URL參數解析為一個對象,如:var url = ”http://www.taobao.com/index.php?key0=0&key1=1& key2=2…..” var obj = parseQueryString(url); alert(obj.key0) // 輸出0 1 var url="http://www.taobao.com/index.php?key0=0&key1=1&key2=2"; 2 function parseQueryString(url){ 3 var str=url.split("?")[1]; 4 var items=str.split("&"); 5 var result={}; 6 var arr=[]; 7 for(var i=0; i<items.length; i++){ 8 arr=items[i].split('='); 9 result[arr[0]]=arr[1];//這句不明白? 10 } 11 return result; 12 } 13 var obj=parseQueryString(url); 14 alert(obj.key1); 這里不明白的是:result[arr[0]]=arr[1];在for循環結束后,按理說應該是key2=2將之前的key1=1和key0=0,覆蓋了的呀?為什么最后alert(obj.key1)時仍舊能打印出來key1的值呢????
查看完整描述

6 回答

?
慕桂英4014372

TA貢獻1871條經驗 獲得超13個贊

result是個對象

第一次循環

result[arr[0]]=arr[1];等價于result["key0"]=0;

第二次循環

result[arr[0]]=arr[1];等價于result["key1"]=1;

查看完整回答
反對 回復 2018-12-24
?
慕妹3146593

TA貢獻1820條經驗 獲得超9個贊

其實for循環內部是這樣的:

result.key0 = 0;

result.key1 = 1;

result.key2 = 2;

這樣寫你還會覺得后面的把前面的覆蓋掉嗎?屬性名稱不一樣,不會覆蓋的。

查看完整回答
反對 回復 2018-12-24
?
慕桂英546537

TA貢獻1848條經驗 獲得超10個贊

就和map與哈希的差不多,就是鍵指對的形式

查看完整回答
反對 回復 2018-12-24
?
鴻蒙傳說

TA貢獻1865條經驗 獲得超7個贊

@小豬冒泡: 他每次都arr=items[i].split('=')重新賦值了,其實result與arr是不同的數據類型,arr是數組類型,result保存的是KEY,與value,key是不允許相同的,value是允許相同的,所以result是一個集合類型的,相當與add操作

查看完整回答
反對 回復 2018-12-24
  • 6 回答
  • 0 關注
  • 529 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號