封装方法 获取浏览器参数,但是使用了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
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。