Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从Javascript中的嵌套forEach函数中断开for in循环?_Javascript_For Loop_Foreach_Break - Fatal编程技术网

如何从Javascript中的嵌套forEach函数中断开for in循环?

如何从Javascript中的嵌套forEach函数中断开for in循环?,javascript,for-loop,foreach,break,Javascript,For Loop,Foreach,Break,我有一个这样的循环 for(参数中的变量键){ if(Array.isArray(params[key])){ 参数[key]。每个(函数(项){ 让值=某物(item.start,item.end); 如果(值==item.start | |值==item.end){ 返回false//break } }) } } 当我设置return false停止every()函数时,我也想停止第一个循环。我该怎么做?我试过这个: OUTER_循环:for(参数中的变量键){ if(Array.isAr

我有一个这样的循环

for(参数中的变量键){
if(Array.isArray(params[key])){
参数[key]。每个(函数(项){
让值=某物(item.start,item.end);
如果(值==item.start | |值==item.end){
返回false//break
}
})
}
}
当我设置
return false
停止
every()
函数时,我也想停止第一个循环。我该怎么做?我试过这个:

OUTER_循环:for(参数中的变量键){
if(Array.isArray(params[key])){
参数[key]。每个(函数(项){
让值=某物(item.start,item.end);
如果(值==item.start | |值==item.end){
返回false//break
中断外部_循环;//不工作
}
})
}
}
但它不是这样工作的。。。那么,如何才能正确地同时停止
every()
函数和第一个循环呢?

您可以获取并返回
true
以退出
some
,并使用
some
的返回值来中断循环

for (var key in params) {
    if (Array.isArray(params[key])) {
        const
            leave = params[key].some(item => {
                let value = something(item.start, item.end);

                // exit condition should return true/truthy value
                // for leaving the outer loop
                return value === item.start || value == item.end;
            });

        if (leave) break;
    }
}

谢谢,但是
return true
不会停止
for(var key in params)
loopyes,请参见编辑。结果需要在外面加上一个检查。谢谢,我再次更新了我的代码,因为我忘了一些东西。。。它是否仍然适用于
some()
?你能再看一下吗?谢谢你的更新。但我有一个问题
something()
返回一个浮点值,例如
0.99
,如果
项.end
1
,则循环在
1
之前结束,因此在我的控制台中。log()我看到它以
0.99
而不是1结束。我怎样才能改变if条件,这样我也可以看到1一次,然后循环中断?或者我需要在返回值之前传递我的其他内容吗?您可以对值进行四舍五入…?您可以共享param的内容吗