ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 作业二 (通关作业) 开发一个函数 ```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])); ```