blog
blog copied to clipboard
合并已排序的数组
function mergeArray(first, sec) {
var temp = new Array(first.length + sec.length)
var t = 0
var i = 0
var j = 0
// 取较短的数组作为loop条件
var mid = (first.length <= sec.length) ? first.length - 1 : sec.length - 1
while (i <= mid && j <= mid) {
//关键的逻辑在于这行
temp[t++] = (first[i] < sec[j]) ? first[i++] : sec[j++]
}
// 将first数组中剩余的元素追加到temp
while (i <= first.length - 1) {
temp[t++] = first[i++]
}
// 将sec数组中剩余的元素追加到temp
while (j <= sec.length - 1) {
temp[t++] = sec[j++]
}
return temp
}
- 删除相同元素
function mergeArray(first, sec) {
var temp = []
var t = 0
var i = 0
var j = 0
var k
// 取较短的数组开始loop
var mid = (first.length <= sec.length) ? first.length - 1 : sec.length - 1
while (i <= mid && j <= mid) {
//关键的逻辑在于这行
k = (first[i] < sec[j]) ? first[i++] : sec[j++]
//过滤重复元素
if (t > 0 && k == temp[t - 1]) {
continue
}
temp[t++] = k
}
// 将first数组中剩余的元素追加到temp
while (i <= first.length - 1) {
k = first[i++]
if (t > 0 && k == temp[t - 1]) continue
temp[t++] = k
}
// 将sec数组中剩余的元素追加到temp
while (j <= sec.length - 1) {
k = sec[j++]
if (t > 0 && k == temp[t - 1]) continue
temp[t++] = k
}
return temp
}
console.log(mergeArray([1, 2, 3], [2, 3, 4, 6]))