封装办法 获取浏览器参数,然而应用了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