【发布时间】:2020-02-23 21:54:59
【问题描述】:
使用 Node.js 10.*
我收到了以下数据结构:
const result = [
{
ID: 1,
Reference: 'Id: 123, Name: "first'
},
{
ID: 2,
Reference: 'Name: "second'
},
{
ID: 3,
Reference: 'Id: 133, Name: "third'
}
];
我想捕获每个引用的 ID(如果存在),然后推送到一个新数组,这将为我提供以下信息:
// [123,133]
我可以使用 Filter 和 Map 过滤掉 Reference 中不包含 'Id' 的内容,方法如下:
let filter = result.filter(i => i.Reference.includes('Id:')).map(i => i.Reference)
这给了我:
// ['Id': 123, Name: 'first, 'Id': 133, Name: 'third']
所以从上面的数组中,我只是去掉 Id 得到:
// [123,133]
使用子字符串似乎对我不起作用。
【问题讨论】:
-
字符串的
Id: 123部分的长度是否已知?如果是这样,您可以提取该部分。如果不是,那么结构是否总是相同的?Id: <digits>后跟逗号?
标签: javascript arrays node.js filter substring