按字母順序排序js對象中的每一項格式化成URL參數

沒有廢話,直接上代碼

var obj = {
      name: "123",
      sex: "4",
      a: "1"
    };
    function objKeySort(obj) {
      //排序的函數
      let newkey = Object.keys(obj).sort(); //先用Object內置類的keys方法獲取要排序對象的屬性名,再利用Array原型上的sort方法對獲取的屬性名進行排序,newkey是一個數組
      let newObj = {}; //建立一個新的對象,用於存放排好序的鍵值對
      for (let i = 0; i < newkey.length; i++) {
        //遍歷newkey數組
        newObj[newkey[i]] = obj[newkey[i]]; //向新建立的對象中按照排好的順序依次增長鍵值對
      }
      return newObj; //返回排好序的新對象
    }
    function getSigns(datas) {
      let data = objKeySort(datas);
      let url = "";
      if (
        typeof data == "undefined" ||
        data == null ||
        typeof data != "object"
      ) {
        return "";
      }
      for (var k in data) {
        url += (url.indexOf("=") != -1 ? "&" : "") + k + "=" + data[k];
      }
      return url;
    }
    console.log(getSigns(obj), 44); //a=1&name=123&sex=4 44
  }
複製代碼
相關文章
相關標籤/搜索