一只开发狗001 2022-09-28 16:22 采纳率: 22.2%
浏览 85
已结题

特殊格式字符串转为对象数组



Name                       : 以太网 3
InterfaceDescription       :""
InterfaceIndex             : 11
MacAddress                 : ""
MediaType                  : 802.3
PhysicalMediaType          : Unspecified
InterfaceOperationalStatus : NotPresent
AdminStatus                : Down
LinkSpeed(Mbps)            : 0
MediaConnectionState       : Unknown
ConnectorPresent           : False
DriverInformation          :""

Name                       : 以太网 2
InterfaceDescription       : ""
InterfaceIndex             : 8
MacAddress                 : ""
MediaType                  : 802.3
PhysicalMediaType          : Unspecified
InterfaceOperationalStatus : Up
AdminStatus                : Up
LinkSpeed(Gbps)            : 1
MediaConnectionState       : Connected
ConnectorPresent           : True
DriverInformation          :""

js或jquery如何将这种特殊的纯字符串转为对象数组,求指教1

  • 写回答

6条回答 默认 最新

  • MAXLZ 2022-09-28 17:16
    关注
    function strToArray(str) {
      const res = []
      const groups = str.split(/\n/)
      let obj = {}
      for (const group of groups) {
        const groupWithoutWhite = group.replace(/\s+/g, '')
        if (groupWithoutWhite) {
          const [ key, value ] = groupWithoutWhite.replace(/(""|'')/g, '').split(':')
          obj[key] = value
        } else {
          if (Object.keys(obj).length) {
            res.push(obj)
          }
          obj = {}
        }
      }
      if (Object.keys(obj).length) {
        res.push(obj)
      }
      return res
    }
    
    const str = `
    Name                       : 以太网 3
    InterfaceDescription       :
    InterfaceIndex             : 11
    MacAddress                 : *
    MediaType                  : 802.3
    PhysicalMediaType          : Unspecified
    InterfaceOperationalStatus : NotPresent
    AdminStatus                : Down
    LinkSpeed(Mbps)            : 0
    MediaConnectionState       : Unknown
    ConnectorPresent           : False
    DriverInformation          : ""
    
    Name                       : 以太网 2
    InterfaceDescription       :
    InterfaceIndex             : 8
    MacAddress                 : **
    MediaType                  : 802.3
    PhysicalMediaType          : Unspecified
    InterfaceOperationalStatus : Up
    AdminStatus                : Up
    LinkSpeed(Gbps)            : 1
    MediaConnectionState       : Connected
    ConnectorPresent           : True
    DriverInformation          : ""`
    
    
    console.log(strToArray(str))
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(5条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 9月29日
  • 已采纳回答 9月29日
  • 创建了问题 9月28日

悬赏问题

  • ¥15 关于#java#的问题,请各位专家解答!
  • ¥15 急matlab编程仿真二阶震荡系统
  • ¥20 TEC-9的数据通路实验
  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
  • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?
  • ¥30 求解达问题(有红包)
  • ¥15 请解包一个pak文件