始於足下 ——頁面連接參數的截取

在處理業務的時候有時會用到經過頁面跳轉連接來傳遞參數數組

如何才能取到傳過來的參數而且以對象的形式展現出來呢?spa

今天我找到了一個方法,做以記錄!code

方法以下:對象

     function getQueryStringArgs(){字符串

    //取得查詢字符串而且去掉開頭的問號get

    let qs = (location.search.length > 0 ? location.search.substring ( 1 ) : " " );string

    //聲明保存數據的對象it

    let args = {};io

    //取得每一項for循環

    items = qs.length ? qs.split("&") : [ ];

    item = null;

    name = null;

    value  = null;

    //在for循環中使用

    for( let i = 0 ; i < items.length ; i++){

      item = items [ i ] . split("=");

      name = decodeURIComponent(item[0]);

      value = decodeURIComponent(item[1]);

      if(name.length){

        args[name] = value;

      }

    }

    return args;

  }

  這個方法主要使用的是location對象的search屬性,先是獲取到鏈接中  「 ?」 以及後面的內容,而後在第一步就將 ?截取掉,留下後面的 name=value & name=value 相似於這樣的鍵值對組合字符串,第二步再經過 split 方法,返回全部的鍵值對數組,相似於[ " name = value"," name = value"," name = value"],

最後一步循環這個數組,對其中的每一項經過split方法再進行截取,標識符爲「=」,返回的值相似於[ "name","value"],最後經過提早聲明的接受參數對數組中的內容進行接收,最後放入事前聲明的保存數據的對象中,由此,功能完成

相關文章
相關標籤/搜索