【问题标题】:javascript - extract text from value and add to new key value pairjavascript - 从值中提取文本并添加到新的键值对
【发布时间】:2021-01-08 01:30:16
【问题描述】:

我正在获取以下数据对象以响应获取请求。有谁知道可以提取 .ref 属性中的三个数字并将其添加到 SUBTOTAL 之后的新键值对的函数,称为 Code: 011 和 Code: 005 如果我们使用下面的示例。所以我会有一个新对象,其中包含这个额外的键值对和来自 ref 的值。

[
  {
    ref: 'COS-MOD-011-CDT-PRP-3521234893',
    fra: 'XX ',
    batchref: 3181,
    F_NAME: 'Bee',
    L_NAME: 'Boker',
    M_NUMBER: '33411245596X',
    CREATED: '2020-12-21T10:33:57',
    PRODUCT: 'XYZ',
    OPTION: '2 Tickets',
    PRICE: 12,
    QTY: 2,
    SUBTOTAL: 24
  },
  {
    ref: 'COS-MOD-005-CDT-PRP-3521234893',
    fra: 'XX ',
    batchref: 3181,
    F_NAME: 'Baa',
    L_NAME: 'Beep',
    M_NUMBER: '312334596X',
    CREATED: '2020-12-21T10:33:57',
    PRODUCT: 'XYZ',
    OPTION: '2 Tickets',
    PRICE: 12,
    QTY: 2,
    SUBTOTAL: 24
  }
]

【问题讨论】:

    标签: javascript function javascript-objects


    【解决方案1】:

    那个?

    const data = 
          [ { ref      : 'COS-MOD-011-CDT-PRP-3521234893'
            , fra      : 'XX '
            , batchref : 3181
            , F_NAME   : 'Bee'
            , L_NAME   : 'Boker'
            , M_NUMBER : '33411245596X'
            , CREATED  : '2020-12-21T10:33:57'
            , PRODUCT  : 'XYZ'
            , OPTION   : '2 Tickets'
            , PRICE    : 12
            , QTY      : 2
            , SUBTOTAL : 24
            } 
          , { ref      : 'COS-MOD-005-CDT-PRP-3521234893'
            , fra      : 'XX '
            , batchref : 3181
            , F_NAME   : 'Baa'
            , L_NAME   : 'Beep'
            , M_NUMBER : '312334596X'
            , CREATED  : '2020-12-21T10:33:57'
            , PRODUCT  : 'XYZ'
            , OPTION   : '2 Tickets'
            , PRICE    : 12
            , QTY      : 2
            , SUBTOTAL : 24
            } 
          ] 
    
    const newData = data.map(({ref,...more})=>({ref,...more,Code:ref.split('-')[2]}))
    
    
    console.log( newData )
    .as-console-wrapper { max-height: 100% !important; top: 0; }

    【讨论】:

      【解决方案2】:

      我不确定您希望 SUBTOTAL 的确切位置,但如果 ref 始终是这种格式,您可以简单地做到这一点

      let ref_value = obj_name.ref.split("-")[2]
      

      JSFiddle 相关代码here.

      【讨论】:

        【解决方案3】:

        const array = [
          {
            ref: 'COS-MOD-011-CDT-PRP-3521234893',
            fra: 'XX ',
            batchref: 3181,
            F_NAME: 'Bee',
            L_NAME: 'Boker',
            M_NUMBER: '33411245596X',
            CREATED: '2020-12-21T10:33:57',
            PRODUCT: 'XYZ',
            OPTION: '2 Tickets',
            PRICE: 12,
            QTY: 2,
            SUBTOTAL: 24
          },
          {
            ref: 'COS-MOD-005-CDT-PRP-3521234893',
            fra: 'XX ',
            batchref: 3181,
            F_NAME: 'Baa',
            L_NAME: 'Beep',
            M_NUMBER: '312334596X',
            CREATED: '2020-12-21T10:33:57',
            PRODUCT: 'XYZ',
            OPTION: '2 Tickets',
            PRICE: 12,
            QTY: 2,
            SUBTOTAL: 24
          }
        ]
        
        array.forEach(e => e.Code = e.ref.match(/...-...-(\d\d\d)-.*/)[1])
        
        console.log(array);

        【讨论】:

          【解决方案4】:

          试试这个:

          let obj.code = obj.ref.slice(7, 10);
          

          slice 将返回 .ref 属性的位置 7 到位置 10 之间的字符串。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2016-02-11
            • 1970-01-01
            • 1970-01-01
            • 2023-02-22
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多