微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript - 从值中提取文本并添加到新的键值对

如何解决javascript - 从值中提取文本并添加到新的键值对

我正在获取以下数据对象以响应提取请求。有谁知道一个函数可以提取 .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',F_NAME: 'Baa',L_NAME: 'Beep',M_NUMBER: '312334596X',SUBTOTAL: 24
  }
]

解决方法

那个?

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',F_NAME   : 'Baa',L_NAME   : 'Beep',M_NUMBER : '312334596X',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; }

,

我不确定您想要 SUBTOTAL 的确切位置,但如果 ref 始终是那种格式,您可以简单地做

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

带有相关代码 here 的 JSFiddle。

,

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',F_NAME: 'Baa',L_NAME: 'Beep',M_NUMBER: '312334596X',SUBTOTAL: 24
  }
]

array.forEach(e => e.Code = e.ref.match(/...-...-(\d\d\d)-.*/)[1])

console.log(array);

,

试试这个:

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。