题目要求:两个有序的数组重新排序成一个有序的数组,写出两种,一种用concat连接,再用sort排序;另一种要求不使用数组的方法
- 用 JS 的数组方法
var arr1 = [2,4,9,12,13,61,78];
var arr2 = [1,3,5,12,13,14,16];
function arrNum(a,b) {
return a-b;
}
var arr = arr1.concat(arr2).sort(arrNum)
console.log(arr); //[ 1, 2, 3, 4, 5, 9, 12, 12, 13, 13, 14, 16, 61, 78 ]
- 不用 JS 的方法
var arr1 = [2,4,9,12,13,61,78];
var arr2 = [1,3,5,12,13,14,16];
var arr3 = [];
for(var i=0,j=0;i <= arr1.length,j <= arr2.length;){
if(arr1.length === 0){
arr3 = arr3.concat(arr2)
i++
}else if(arr2.length === 0){
arr3 = arr3.concat(arr1)
j++
}else {
if(arr1[i] < arr2[j]){
arr3.push(arr1[i])
arr1 = arr1.slice(1)
}else {
arr3.push(arr2[j])
arr2 = arr2.slice(1)
}
}
}
console.log(arr3) //[ 1, 2, 3, 4, 5, 9, 12, 12, 13, 13, 14, 16, 61, 78 ]
网友评论