题目要求:
arr_1 = [A1, A2, A3, B1, B2, B3, C1, C2, C3, D1, D2]
arr_2 = [A, B, C, D]
合并为:
arr = [A1, A2, A3, A, B1, B2, B3, B, C1, C2, C3, C, D1, D2, D]
步骤:
(1)利用正则匹配
方法一: 以 arr2内的元素 为正则,匹配 数组1(能匹配到则往后走,匹配不到就停下,记为索引)用记录下索引位置,在对应的位置插入 数组2的元素
let arr_1 = ['A1', 'A2', 'A3','B1', 'B2', 'B3', 'C1', 'C2', 'C3', 'D1', 'D2']
let arr_2 = ['A', 'B', 'C', 'D']
function combinArr(arr1, arr2) {
let res = arr1;
let curIndex = 0;
for (const item of arr2) {
const reg = new RegExp(item)
while(curIndex < arr1.length){
// RegExp的实例方法:test,用于匹配正则表达式
if(!reg.test(arr1[curIndex])){
res.splice(curIndex, 0, item);
// 匹配到了由于要跳出循环,所以要直接加一
curIndex ++;
break;
}
curIndex ++;
}
}
return res
}
console.log(combinArr(arr_1, arr_2));