【问题标题】:How to transform string into object by Lodash [duplicate]如何通过 Lodash 将字符串转换为对象 [重复]
【发布时间】:2018-01-26 21:27:56
【问题描述】:

如何通过lodash将"t=1&m=6&r=2"转换为{t:1, m:6, r:2}

【问题讨论】:

    标签: javascript string object lodash


    【解决方案1】:

    您可以拆分字符串并使用_.fromPairs 获取对象。

    如有必要,您可以使用decodeURI 来解码带有%20 等元素的字符串。

    var string = decodeURI("t=1&m=6&r=%20"),
        object = _.fromPairs(string.split('&').map(s => s.split('=')));
        
    console.log(object);
    <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.15.0/lodash.min.js"></script>

    【讨论】:

      【解决方案2】:

      使用split()Array#reduce() 函数尝试简单的javascript

      var str = 't=1&m=6&r=2';
      
      var res = str.trim().split('&').reduce(function(a, b) {
        var i = b.split('=');
        a[i[0]] = i[1];
        return a;
      }, {})
      
      console.log(res)

      使用 lodash

      var str = 't=1&m=6&r=2';
      
          var res = _.reduce(_.split(str.trim(),'&'),function(a, b) {
            var i = b.split('=');
            a[i[0]] = i[1];
            return a;
          }, {})
          
          console.log(res)
      <script src="https://cdn.jsdelivr.net/lodash/4/lodash.min.js"></script>

      【讨论】:

        【解决方案3】:

        如果您在浏览器中工作,则可以使用URLSearchParams 类。它不是 lodash 的一部分,它只是标准 JavaScript 的一部分。 IE 尚不支持,但您可以使用polyfill

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-11-10
          • 2017-12-21
          • 2020-01-25
          • 2020-11-15
          • 1970-01-01
          • 2014-06-22
          • 2013-09-03
          • 2017-08-11
          相关资源
          最近更新 更多