问题描述
我正在获取以下数据对象以响应提取请求。有谁知道一个函数可以提取 .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 之间的字符串。