# 作業二 (通關作業)
開發一個函數
```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)
- 知識點
- 第七周
- 每周作業
- 作業一(玩練)
- 作業二(玩練)
- 作業三(通關)
- 作業四(通關)
- 知識點
- 第八周
- 每周作業
- 作業一(玩練)
- 作業二(玩練)
- 作業三(通關)
- 知識點
- 第九周
- 每周作業
- 作業一(玩練)
- 作業二(玩練)
- 作業三(玩練)
- 作業四(通關)
- 知識點
- 第十周
- 每周作業
- 作業一(玩練)
- 知識點