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



我需要用一些函数替换两个(嵌套的)forEach循环。代码块的目的是检查arrayOne中的[1]元素是否在最大&

代码目前运行良好,看起来像这样:

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)
); 

最新更新