//[[0,3,4,31], [4,6,30]]
function mergeSortedArrays1(arr1, arr2){
return console.log(arr1.concat(arr2).sort((a,b) => a - b));
}
function mergeSortedArrays2(arr1, arr2){
for(var i = 0; i < arr2.length; i++){
arr1.push(arr2[i]);
}
return console.log(arr1.sort((a,b) => a - b));
}
function mergeSortedArrays3(arr1, arr2){
return console.log([...arr1,...arr2].sort((a,b) => a - b));
}
function mergeSortedArrays(array1, array2){
const mergedArray = [];
//We should actually move these 2 if statements to line 2 so that we do the checks before we do assignments in line 3 and 4!
if(array1.length === 0) {
return array2;
}
if(array2.length === 0) {
return array1;
}
let array1Item = array1[0];
let array2Item = array2[0];
let i = 1;
let j = 1;
while(array1Item || array2Item){
if(!array2Item || array1Item < array2Item){
mergedArray.push(array1Item);
array1Item = array1[i];
i++;
} else {
mergedArray.push(array2Item);
array2Item = array2[j];
j++;
}
}
return console.log(mergedArray);
}
//mergeSortedArrays([0,3,4,31], [0,4,6,30]);
const arr1 = [0, 3, 4, 31];
const arr2 = [0, 4, 6, 30, 33, 40];
const merge = (arr1, arr2) => {
if(arr1.length < 1){
return arr2;
}
if(arr2.length < 1){
return arr1;
}
const arr = [];
let i = 0;
let j = 0;
while(arr1[i] != undefined || arr2[j] != undefined){
if(arr2[j] == undefined || (arr1[i] != undefined && arr1[i] < arr2[j])){
arr.push(arr1[i]);
i++;
} else {
arr.push(arr2[j]);
j++;
}
}
return console.log(arr);
}
merge(arr1, arr2);
//[0,3,4,31], [4, 6, 30]