如果我有以下数组,每个元素代表整数范围对:
var a = [[0, 47], [50, 51], [53, 53], [55, 55], [58, 97], [101, 101], [103, 1114111]];
var b = [[48, 57], [97, 102]];
我正在使用此代码来计算交集:
var output = [];
for (var i = 0; i < a.length; ++i) {
for (var j = 0; j < b.length; ++j) {
var intersection = [
Math.max(a[i][0], b[j][0]),
Math.min(a[i][1], b[j][1]), ];
if (intersection[0] <= intersection[1]) {
output.push(intersection)
}
}
}
console.log(JSON.stringify(output));
[ [ 50, 51 ], [ 53, 53 ], [ 55, 55 ], [ 97, 97 ], [ 101, 101 ] ]
我还需要计算差异(所有值 0..1114111 除了上面相交的范围)。
这样做的有效方法是什么?