两个数组按指定形式合并 | 刷题打卡

226 阅读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]。

二、思路分析:

数组按特定规律插入排序,本题是隔两个插一项,想到了数组的 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());

四、总结:

试着参加掘金活动打个卡;