# 作业二 (通关作业)
开发一个函数
```js
function fn(arr1,arr2){}
```
这个函数的作用时交叉融合两个数组,返回一个新数组。
例如:
```js
fn([ 1,2,3 ] , [4,5,6])
```
返回的结果是
```js
[1,4,2,5,3,6]
```
## 作业点评
完善方法。兼容 arr1与arr2可能长度不相同的情况
## 参考代码
```js
// 第一种思路
const array1 = [1, 2, 3, 4, 5, 6];
const array2 = [7, 8, 9, 10, 11, 0, 22, 33];
function fn2(array1, array2) {
let arr1, arr2, arr3 = [];
if (array1.length < array2.length) {
arr1 = array2;
arr2 = array1;
}else{
arr1 = array1;
arr2 = array2;
}
for (let i = 0; i < arr1.length; i++) {
arr3.push(arr1[i]);
arr2[i] && arr3.push(arr2[i]);
}
console.log(arr3);
}
fn2(array1, array2);
```
```js
// 把第一种思路代码简化
var a1 = [1,2,3];
var a2 = [4,5,6,7,8];
function a12(a1,a2){
var newArr = [];
for(var i=0; i<Math.max(a1.length, a2.length); i++){
if(i<a1.length) newArr.push(a1[i]);
if(i<a2.length) newArr.push(a2[i]);
}
return newArr;
}
```
```js
// 第二种思路
function fn(arr1, arr2){
for(var i=0,j=1;i<arr2.length; i++)
{
arr1.splice(j ,0 ,arr2[i])
j+=2;
}
return arr1;
}
console.log(fn([0,1,2,3] , [4,5,6,7,8,9,11,12,13]));
```
- [分享]微信小程序入门与实战
- 学习大纲
- 关于学习的一些常见问题
- 第一周
- 每周作业
- 玩练作业
- 知识点
- 正确设置PORT端口(windows/mac)
- 发布npm包
- 第二周
- 每周作业
- [作业一 (通关作业)](第二周/作业一 (通关作业).md)
- 作业二 (通关作业)
- 作业三 (通关作业)
- 作业四(可选)
- 作业五(可选)
- 知识点
- 原型链及继承的理解
- 第三周
- 每周作业
- 作业一 (通关作业)
- 作业二 (通关作业)
- 作业三 (通关作业)
- 作业四(可选)
- 知识点
- 正则表达式常用方法
- promise用法
- 常用正则表达式大全
- 第四周
- 每周作业
- 玩练作业
- 知识点
- 第五周
- 每周作业
- 作业一(通关作业)
- 作业二 (通关作业)
- 作业三(玩练作业)
- 知识点
- 第六周
- 每周作业
- [作业一(通关作业)](第六周/作业一(通关作业).md)
- 知识点
- 第七周
- 每周作业
- 作业一(玩练)
- 作业二(玩练)
- 作业三(通关)
- 作业四(通关)
- 知识点
- 第八周
- 每周作业
- 作业一(玩练)
- 作业二(玩练)
- 作业三(通关)
- 知识点
- 第九周
- 每周作业
- 作业一(玩练)
- 作业二(玩练)
- 作业三(玩练)
- 作业四(通关)
- 知识点
- 第十周
- 每周作业
- 作业一(玩练)
- 知识点