按字母顺序排序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
  }
复制代码
相关文章
相关标签/搜索