JS陣列操作:去重,交集,並集,差集
阿新 • • 發佈:2018-12-14
var aHasNaN = a.some(function(v){ return isNaN(v) }) var bHasNaN = b.some(function(v){ return isNaN(v) }) // 並集 var union = a.concat(b.filter(function(v) { return a.indexOf(v) === -1 && !isNaN(v)})).concat(!aHasNaN & bHasNaN ? [NaN] : []) // [1,2,3,4,5] // 交集 var intersection = a.filter(function(v){ returnb.indexOf(v) > -1 }).concat(aHasNaN & bHasNaN ? [NaN] : []) // [2] // 差集 var difference = a.filter(function(v){ return b.indexOf(v) === -1 && !isNaN(v) }).concat(b.filter(function(v){ return a.indexOf(v) === -1 && !isNaN(v) })).concat(aHasNaN ^ bHasNaN ? [NaN] : []) // [1,3,4,5]