js 数据结构组装

let list = "开户银行:开户银行1,银行账户:银行账户1。核对结果: 有差异;开户银行:开户银行2,银行账户:银行账户2。核对结果: 有差异;"

如何转换成

[
  {
    "开户银行":"开户银行1",
    "银行账户":"银行账户1
  },
  {
    "开户银行":"开户银行2",
    "银行账户":"银行账户2"
  }
]
阅读 1.6k
3 个回答
list.split(';').filter(i => !!i).map(item => {
    return item.split(/,|。/).reduce((o, citem) => {
        let [key, value] = citem.split(':')
        o[key] = value
        return o
    }, {})
})

list.match(/(开户银行:.+?核对结果)/g) 快速匹配出你想要的信息:
['开户银行:开户银行1,银行账户:银行账户1。核对结果', '开户银行:开户银行2,银行账户:银行账户2。核对结果'],接下来知道咋办了吧

list.match(/开户银行:.+?核对结果/g)
    .map(item => item.slice(0, -5))
    .map(item => 
        item
        .split(',')
        .reduce((pre, cur) => {
            const [k, v] = cur.split(':');
            pre[k] = v;
            return pre;
        }, {})
    )
新手上路,请多包涵

先用split(‘,’)转成数组,在遍历每一项用split(‘:’) 即可

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题