在處理業務的時候有時會用到經過頁面跳轉連接來傳遞參數數組
如何才能取到傳過來的參數而且以對象的形式展現出來呢?spa
今天我找到了一個方法,做以記錄!code
方法以下:對象
function getQueryStringArgs(){字符串
//取得查詢字符串而且去掉開頭的問號get
let qs = (location.search.length > 0 ? location.search.substring ( 1 ) : " " );string
//聲明保存數據的對象it
let args = {};io
//取得每一項for循環
items = qs.length ? qs.split("&") : [ ];
item = null;
name = null;
value = null;
//在for循環中使用
for( let i = 0 ; i < items.length ; i++){
item = items [ i ] . split("=");
name = decodeURIComponent(item[0]);
value = decodeURIComponent(item[1]);
if(name.length){
args[name] = value;
}
}
return args;
}
這個方法主要使用的是location對象的search屬性,先是獲取到鏈接中 「 ?」 以及後面的內容,而後在第一步就將 ?截取掉,留下後面的 name=value & name=value 相似於這樣的鍵值對組合字符串,第二步再經過 split 方法,返回全部的鍵值對數組,相似於[ " name = value"," name = value"," name = value"],
最後一步循環這個數組,對其中的每一項經過split方法再進行截取,標識符爲「=」,返回的值相似於[ "name","value"],最後經過提早聲明的接受參數對數組中的內容進行接收,最後放入事前聲明的保存數據的對象中,由此,功能完成