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