前言
在处理字符串数据时,有时需要从字符串中提取数字部分进行进一步处理。以下是一段代码示例,结合详细的解释说明每个步骤的原理和作用。
一、遍历处理每个项目
// 示例数组
const arr = [{ bed_no: 15 }, { bed_no: '9号床21床' }];
// 遍历数组中的每个元素
arr.forEach((item, i) => {
// 代码逻辑将在此处插入
});
二、判断数据类型并提取数字部分
数据类型判断:
如果bed_no的数据类型是数字,说明已经是符合条件的数据,直接赋值给bed_id。
如果bed_no的数据类型是字符串,继续下一步处理。
正则表达式匹配:
使用正则表达式/\d+/匹配字符串中的第一个连续的数字部分。
match方法返回匹配结果数组matchResult,其中第一个元素就是匹配到的数字字符串。
转换为数值:
通过parseInt方法将匹配到的数字字符串转换为整数,并赋值给bed_id。
第二个参数10表示使用十进制转换。
// 示例数组
const arr = [{ bed_no: 15 }, { bed_no: '9号床21床' }];
// 遍历数组中的每个元素
arr.forEach((item, i) => {
if (typeof item.bed_no === 'number') {
item.bed_id = item.bed_no;
} else if (typeof item.bed_no === 'string') {
const matchResult = item.bed_no.match(/\d+/);
if (matchResult) {
item.bed_id = parseInt(matchResult[0], 10);
}
}
});