首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >两个数字在数组jquery的范围内。

两个数字在数组jquery的范围内。
EN

Stack Overflow用户
提问于 2022-08-03 11:57:21
回答 1查看 33关注 0票数 -4

我有两个数组,需要检查其中任何重复的范围,如何实现?

代码语言:javascript
复制
let arrayfrom = ['1', '6.1', '10', '31','6.2',3];
let arrayto   = ['2', '9.9', '30', '401','7',5];

我们如何测试重复范围?预期结果如下:

代码语言:javascript
复制
1-2   -valid 
6.1 - 9.9 -valid
10 - 30-valid
31 - 401 -valid
6.2 - 7 -invalid (between range 6.1 - 9.9)
3-5 - valid 

帮我找到这个解决方案

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-03 12:09:29

一两圈就行了。我们需要把所有的配对和其他的比较。

代码语言:javascript
复制
let arrayFrom = ['1', '6.1', '10', '31', '6.2', 3];
let arrayTo = ['2', '9.9', '30', '401', '7', 5];

function is_pair_included(a, in_b) {
  return (a[0] > in_b[0] && a[1] < in_b[1])
}
var to_remove = [];
for (var i = 0; i < arrayFrom.length - 1; i++) {
  for (var j = i + 1; j < arrayFrom.length; j++) {
    var pair1 = [+arrayFrom[i], +arrayTo[i]];
    var pair2 = [+arrayFrom[j], +arrayTo[j]];

    if (is_pair_included(pair1, pair2)) {
      to_remove.push(i);
    }
    if (is_pair_included(pair2, pair1)) {
      to_remove.push(j);
    }
  }

}


to_remove.forEach(function(i) {
  var pair1 = [+arrayFrom[i], +arrayTo[i]];
  console.log("" + pair1, "invalid");

})

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73221320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档