如何通过 Lodash 将字符串转换为对象 [重复]

Posted

技术标签:

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

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

【问题讨论】:

【参考方案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。

【讨论】:

以上是关于如何通过 Lodash 将字符串转换为对象 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

lodash将对象值(字符串)转换为数字

使用 lodash 将对象转换为数组

将字符串转换为具有重复键的对象到数组

如何将日期格式QQ-YYYY转换为日期时间对象[重复]

如何将列表转换为字符串[重复]

将字符串数组转换为哈希图[重复]