首页 > 解决方案 > 如何将包含空格的字符串转换为有组织的对象

问题描述

我想从此文本中删除所有空格,然后将结果组织到对象中

var notOrganizedObj = {
    "06fe562bc26ad23ec2a717c893ccc4407297de136b2761a035e80eea75637d3c-0" : "  ENABLED 10035 mYkSVf9AcAMCScw91kcPBiKawe51LYzJRP        8.9.30.2:19662 1557196699  4242543 1557188820",
    "0282ab652d149e092051df77db70187efe5d3e61ed714a9a4efa69d0cc4452a5-0" : "  ENABLED 10035 mMni8ALvkdUHN3jxgHnhJ99S2VthctFbM4       8.9.30.12:19662 1557196829  3169507 1557194872",
}

我试过这个

Object.keys(masternodelist).map(function(key, index) {
 var list = masternodelist[key].split(' ', '')
  console.log(masternodelist[key])
});

所以我可以拆分键的值然后一些如何添加到我的对象中的自定义键

预期的结果是这样的

[{
    "address": "94.177.163.40:4836",
    "tx": "06fe562bc26ad23ec2a717c893ccc4407297de136b2761a035e80eea75637d3c",
    "payee": "WNijK2poAXXoEPp87YT1paWBGsTJYaQhcL",
    "status": "ENABLED",
    "protocol": 70210,
    "daemonversion": "0.12.3.3",
    "sentinelversion": "1.1.0",
    "sentinelstate": "current",
    "lastseen": 1557198027,
    "activeseconds": 4705452,
    "lastpaidtime": 1557181730,
    "lastpaidblock": 184934
  },
  {
    "address": "95.179.229.205:4836",
    "tx": "0282ab652d149e092051df77db70187efe5d3e61ed714a9a4efa69d0cc4452a5",
    "payee": "WcpfARQfyE4SfzLacehgoRrjxQg3wK3YBY",
    "status": "ENABLED",
    "protocol": 70210,
    "daemonversion": "0.12.3.3",
    "sentinelversion": "1.1.0",
    "sentinelstate": "current",
    "lastseen": 1557198094,
    "activeseconds": 8397933,
    "lastpaidtime": 1556925620,
    "lastpaidblock": 180869
  }]

标签: javascript

解决方案


老实说,我不能给你一个完整的答案,因为许多键/属性都丢失了,我不知道如何获得其余的值。

但基本上,我建议您遍历对象,将字符串拆分为字符串数组(.filter(i => i)删除数组中的空字符串 ''),然后将它们映射到您想要的结果中。

我建议你这样做:

const notOrganizedObj = {
  "06fe562bc26ad23ec2a717c893ccc4407297de136b2761a035e80eea75637d3c-0": "  ENABLED 10035 mYkSVf9AcAMCScw91kcPBiKawe51LYzJRP        8.9.30.2:19662 1557196699  4242543 1557188820",
  "0282ab652d149e092051df77db70187efe5d3e61ed714a9a4efa69d0cc4452a5-0": "  ENABLED 10035 mMni8ALvkdUHN3jxgHnhJ99S2VthctFbM4       8.9.30.12:19662 1557196829  3169507 1557194872",
}

const res = [];
for (let key in notOrganizedObj) {
  const wordList = notOrganizedObj[key].split(' ').filter(i => i);
  res.push({
    address: wordList[3],
    tx: key.split('-')[0],
    payee: '',
    status: wordList[1],
    protocol: '',
    daemonversion: '',
    sentinelversion: '',
    sentinelstate: '',
    lastseen: '',
    activeseconds: '',
    lastpaidtime: '',
    lastpaidblock: ''
  })
}

console.log(res);


推荐阅读