常规便捷写法:
var c = b.filter(item => !a.includes(item))
时间复杂度低的写法
var c = []
;(function (r) {
var o = {}
var j = a.length
for (var i = 0, l = r.length; i < l; i++) {
if (i < j) {
o[r[i]] = 1
} else {
if (!o[r[i]]) {
c.push(r[i])
}
}
}
})(a.concat(b))
测试代码
function z() {
var m = []
var k = 0
while (k < 10000) {
m.push(parseInt(Math.random() * k, 10))
k++
}
return m
}
var a = z()
var b = z()
console.time()
var c = b.filter(item => !a.includes(item))
console.timeEnd()
console.log(c)
console.time()
var c = []
;(function (r) {
var o = {}
var j = a.length
for (var i = 0, l = r.length; i < l; i++) {
if (i < j) {
o[r[i]] = 1
} else {
if (!o[r[i]]) {
c.push(r[i])
}
}
}
})(a.concat(b))
console.timeEnd()
console.log(c)