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