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)
);
我需要用某个函数替换两个(嵌套的)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)
);