本文正在参与掘金团队号上线活动,点击 查看大厂春招职位
一、题目描述:
请把俩个数组 [A1, A2, B1, B2, C1, C2, D1, D2] 和 [A, B, C, D],合并为 [A1, A2, A, B1, B2, B, C1, C2, C, D1, D2, D]。
二、思路分析:
数组按特定规律插入排序,本题是隔两个插一项,想到了数组的 splice 方法;
splice() 方法通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。此方法会改变原数组。
- start 指定修改的开始位置(从0计数)。
- deleteCount 可选 整数,表示要移除的数组元素的个数。
- item1, item2, ... 可选 要添加进数组的元素,从start 位置开始。如果不指定,则 splice() 将只删除数组元素。
规律就是在 2 * (i + 1) + i 处插入
三、AC 代码:
function customConcat() {
let arr1 = ['A1', 'A2', 'B1', 'B2', 'C1', 'C2', 'D1', 'D2'];
let arr2 = ['A', 'B', 'C', 'D'];
arr2.forEach((v, i) => {
arr1.splice(3 * i + 2, 0, v);
});
return arr1;
}
console.log(customConcat());
四、总结:
试着参加掘金活动打个卡;