封裝方法 獲取瀏覽器參數,可是使用了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函數