JavaScript 中用于对位于另一个单独范围内的范围求和的算法
javascriptweb developmentfront end technologyobject oriented programming
我们有两组范围;一组是任意长度的单个范围 (R1),另一组是一组范围 (R2),其中部分或全部可能位于单个范围 (R1) 内,也可能不位于单个范围 (R1) 内。
我们需要计算 (R2) 中位于单个范围 (R1) 内的范围(全部或部分)的总和。
const R1 = [20,40]; const R2 = [[14,22],[24,27],[31,35],[38,56]];
结果
= 2+3+4+2 = 11
R1 = [120,356]; R2 = [[234,567]];
结果
122
示例
让我们编写代码 −
const R1 = [20,40];
const R2 = [[14,22],[24,27],[31,35],[38,56]];
const R3 = [120,356];
const R4 = [[234,567]];
function sumRanges(range, values) {
const [start, end] = range;
const res = values.reduce((acc, val) => {
const [left, right] = val;
const ex1 = Math.min(right, end);
const ex2 = Math.max(left, start);
const diff = ex1 - ex2;
return acc + Math.max(0, diff);
}, 0);
return res;
};
console.log(sumRanges(R1, R2));
console.log(sumRanges(R3, R4));
输出
控制台中的输出将是 −
11 122
相关文章
有用资源
javascript 参考教程 - 该教程包含有关 javascript 的更多信息:https://www.cainiaomax.com/javascript/

