合并两个有序数组
改变原数组
function merge(arr1 = [2,3,4,5,7],arr2 = [3,5,6,7,9,10]){
let res = []
while(arr1.length && arr2.length){
if(arr1[0] > arr2[0]){
res.push(arr2.shift())
}else if(arr1[0] < arr2[0]){
res.push(arr1.shift())
}else{
res.push(arr1.shift())
res.push(arr2.shift())
}
}
let _arr = arr1.length ? arr1 :arr2
res.push(..._arr)
return res
}
不改变原数组
const merge = (arr1 = [2, 3, 4, 5, 7], arr2 = [3, 5, 6, 7, 9, 10]) => {
const res = []
let i = 0,
j = 0
while (i < arr1.length && j < arr2.length) {
if (arr1[i] < arr2[j]) {
res.push(arr1[i])
i++
} else if (arr1[i] > arr2[j]) {
res.push(arr2[j])
j++
} else {
res.push(arr1[i])
i++
res.push(arr2[j])
j++
}
}
const _arr = arr1.slice(i).concat(arr2.slice(j))
return res.concat(_arr)
}
以自己现在的努力程度,还没有资格和别人拼天赋

浙公网安备 33010602011771号