求教一个json对象用原生方法转成url拼接参数?

一个未知格式的对象,现在只能勉强使用jquery的each来递归实现。

如果使用原生方法该如何实现??求教。


 var obj = {

      "test": 123123,

      "fruit": '535',

      "book": {

        'aaa': 456,

        'bbb': 789,

        'ccc': {

          'asd': 333,

          'af': true

        }

      }

    }

   export const parseParam = function(param, key, prefix) {

       //prefix 是否带"&"连接符前缀 

      let paramStr = prefix ? "&" : "";

      if (param instanceof String || param instanceof Number || param instanceof Boolean) {

        paramStr += `&${key}=${encodeURIComponent(param)}`

      } else {

      // 这里使用$.each勉强实现

        $.each(param, function(i) {

          let k = key === null ? i : key + (prefix ? i : `.${i}`);

          paramStr += `&${parseParam(this, k)}`;

        });

      }

      return paramStr.substr(1);

    };

     //这里的key和prefix参数没有处理好,不知怎样写可以更规范一些

    console.log(parseParam(obj, '', true))


慕森王
浏览 1040回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript