封裝方法 獲取瀏覽器參數,但是使用了foreach 循環後,調用方法打印就是undefined
原代碼:
export function getUrlParams(parNmae) {
let pramSplitStr = location.hash.split("#/")[1].split("?")[1];
if(!pramSplitStr) return;
let resultParNameStr = pramSplitStr.split("&");
resultParNameStr.forEach(el => {
let pranItem = el.split('=');
if (parNmae == pranItem[0]) {
return pranItem[1]
} else {
return null
}
})
解決替換成find 就好了
// 獲取瀏覽器指定參數 (帶hash的)
export function getUrlParams(parNmae) {
let pramSplitStr = location.hash.split("#/")[1].split("?")[1];
if(!pramSplitStr) return;
let resultParNameStr = pramSplitStr.split("&");
let ret = resultParNameStr.find(el => {
let pranItem = el.split('=');
return parNmae == pranItem[0]
})
let handleOpt = ret.split('=')
return handleOpt[1]
}
forEach() 方法為每個數組元素調用一次函數(回調函數)。
原因:
forEach沒有返回值,只針對每個元素調用func。
forEach()無法在所有元素遍歷完前,終止遍歷,或者return 跳出當前循環,
這樣的話,使用return失效,空循環就會顯示undefined