尝试在 Javascript 中合并两个未排序的数组
2021-04-08
447
我在 javascript 中编写了代码,尝试通过提供两个 sortedarray 输入来返回单个排序数组。
function finalArray(arr1, arr2) {
const mergedArray = [];
if (arr1.length === 0) {
return arr2;
}
if (arr2.length === 0) {
return arr1;
}
let arr1Item = arr1[0];
let arr2Item = arr2[0];
let i = 1;
let j = 1;
while (arr1Item || arr2Item) {
if (arr2Item === undefined || arr1Item < arr2Item) {
mergedArray.push(arr1Item);
arr1Item = arr1[i];
i++;
} else {
mergedArray.push(arr2Item);
arr2Item = arr2[j];
j++;
}
}
return mergedArray
}
console.log(finalArray([2, 6, 4, 10], [15, 1, 5, 33]));
有人能帮忙合并未排序数组吗?
2个回答
先合并两个数组,然后进行排序?
const arr1 = [2, 6, 4, 10];
const arr2 = [10, 1, 5, 33];
const newArray = ([...arr1, ...arr2]);
newArray.sort(function(a,b){return a - b});
console.log(newArray);
预期输出:[1, 2, 4, 5, 6, 10, 10, 33]
pixelcreated
2021-04-09
问题是你正在比较每两对数据并推送较小的一个。 首先尝试对每个子数组进行排序,而不进入比较过程进行混合。 子数组排序后,再相互比较。
Sadegh Sazmand
2021-04-08