将两个有序数组合并成一个有序数组,假设两个数组,a和b合并成c.
我的想法是,以b数组作为参照,从下标0 开始 逐一对比a数组和b数组的每个元素大小,将小的push到c数组,然后下边加一,再进行匹配对比,(如有相同的元素,那么将b元素放入数组,两个数组下标同时加一),截止到某一个数组的最后一个元素,将另一个数组的剩余的元素,拼接到c数组。
具体代码如下:
var a = [1];
var b = [0];
var c = [];
var i = 0;
var j = 0;
function test() {
debugger;
if (b[j] < a[i]) {
c.push(b[j]);
j++;
if (j < b.length) {
test()
} else {
c = c.concat(a.slice(i, a.length))
}
} else if (b[j] == a[i]) {
c.push(b[j]);
i++;
j++;
if (j < b.length) {
test();
} else {
c = c.concat(a.slice(i, a.length))
}
} else {
if (i < a.length) {
c.push(a[i]);
i++;
test()
} else {
c = c.concat(b.slice(j, b.length))
}
}
console.log(c)
}
test()