如何解决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 举报,一经查实,本站将立刻删除。