为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用键值对将字符串转换为对象

如何使用键值对将字符串转换为对象

拉风的咖菲猫 2019-04-25 18:15:04
我有一个看起来像这样的字符串:'a=aaa,bbb,ccc&b=aaa,bbb,ccc&c=aaa,bbb,ccc'我想把它改成一个看起来像这样的对象:{ a: 'aaa, bbb, ccc', b: 'aaa, bbb, ccc', c: 'aaa, bbb, ccc' }我试过拆分&然后然后=导致:[ ['a', 'aaa','bbb','ccc'], ['b', 'aaa','bbb','ccc'], ['c', 'aaa','bbb','ccc' ] ]
查看完整描述

4 回答

?
慕容森

TA贡献1853条经验 获得超18个赞

如果您只想使用split(),则需要使用拆分键和值来创建对象。您可以在reduce循环(或a forEach())中执行此操作:


s = 'a=aaa,bbb,ccc&b=aaa,bbb,ccc&c=aaa,bbb,ccc'

let pairs = s.split('&')                // each pair is like a=aaa,bbb,ccc

let obj = pairs.reduce((obj,data)=> {

    let [k, v] = data.split('=')        // split each pair into key/value

    obj[k] = v                          // add the key to the object

    return obj

}, {})

console.log(obj)


查看完整回答
反对 回复 2019-05-17
?
互换的青春

TA贡献1797条经验 获得超6个赞

您可以像这样通过生成的数组进行迭代 -

var myObj = {};for (var i=0; i<arr.length; i++) {
    for (var j=0; j<arr[i].length; j++) {
        var newProp = arr[i].shift();     
        myObj[newProp] =  arr[i].join()
    }}

没有测试它,但我认为这将有效。


查看完整回答
反对 回复 2019-05-17
  • 4 回答
  • 0 关注
  • 1371 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信