数组合并

225 阅读1分钟

请把两个数组['A1', 'A2', 'B1', 'B2', 'C1', 'C2', 'D1', 'D2'] 和['A', 'B', 'C', 'D'],合并 为['A1', 'A2', 'A', 'B1', 'B2', 'B', 'C1', 'C2', 'C', 'D1', 'D2', 'D']。

方法1:

const arr1 = ["A1", "A2", "B1", "B2", "C1", "C2", "D1", "D2"];
const arr2 = ["A", "B", "C", "D"];
const ret = [];
let tmp = arr2[0];
let j = 0;
for (let i = 0; i < arr1.length; i++) {
    // 判断arr1的第一个字母是不是相同
    if (tmp === arr1[i].charAt(0)) {
	ret.push(arr1[i]);
    } else {
	ret.push(tmp);
	ret.push(arr1[i]);
	tmp = arr2[++j];
    }
// 最后一个字母添加
    if (i === arr1.length - 1) {
	 ret.push(tmp);
    }
}
console.log(ret);

方法2:map

let a1 = ["A1", "A2", "B1", "B2", "C1", "C2", "D1", "D2"];
let a2 = ["A", "B", "C", "D"].map((item) => {
//先加把字母变成A3
  return item + 3;
});

let a3 = [...a1, ...a2].sort().map((item) => {
//合并数组然后把A3变成A
  if (item.includes("3")) {
    return item.split("")[0];
  }
  return item;
});