foreach 返回undefined 留坑

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

相關文章
相關標籤/搜索