gpt4 book ai didi

javascript - 对象数组中的子字符串

转载 作者:行者123 更新时间:2023-11-30 08:18:04 25 4
gpt4 key购买 nike

使用 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]

使用子字符串似乎对我不起作用。

最佳答案

您可以使用数字的正则表达式映射该部分并返回一个数字。

const
result = [{ ID: 1, Reference: 'Id: 123, Name: "first' }, { ID: 2, Reference: 'Name: "second' }, { ID: 3, Reference: 'Id: 133, Name: "third' }],
filter = result
.filter(i => i.Reference.includes('Id:'))
.map(i => i.Reference)
.map(s => +s.match(/Id:\s*(\d+)/)[1])

console.log(filter);

关于javascript - 对象数组中的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58594214/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com