关于javascript:foreach-返回undefined-留坑

26次阅读

共计 791 个字符,预计需要花费 2 分钟才能阅读完成。

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

正文完
 0