some() 函数可以替换嵌套的 forEach() 吗?

Can a some() function replace nested forEach()?

我需要用某个函数替换两个(嵌套的)forEach 循环。代码块的目的是检查 arrayOne 中的 [1] 个元素是否在 arrayTwo 的最大值和最小值范围内。

代码目前运行良好,如下所示:

    var result = false;
    arrayOne.forEach((arrayOneElement) => {
      arrayTwo.forEach((arrayTwoElement) => {
        if (arrayOneElement[1] > arrayTwoElement[1].max || arrayOneElement[1] < arrayTwoElement[1].min) {
          result = true;
        }
      });
    }); 

让我知道是否不够清楚。非常感谢您的帮助。

是的,您可以在这种情况下使用 Array#some。会这样

const result = arrayOne.some((arrayOneElement) => {
  return arrayTwo.some((arrayTwoElement) => {
    return arrayOneElement[1] > arrayTwoElement[1].max || arrayOneElement[1] < arrayTwoElement[1].min
  });
});

您可以将 forEach 替换为 some 并从项目中获取解构值。

const 
    result = arrayOne.some(([, value]) =>
        arrayTwo.some(([, { min, max }]) => value > max || value < min)
    );