请问怎么在es6中优雅的退出循环并return

常常会遇到这样一个情况:


var flag=false;

var arr=["jpg","ppt","doc"];

var newArr=arr.length>0 && arr.reduce(function(x,y){

    if(x===""){

        flag==true

        return

    }

    return x+"|"+y;

})

if(flag)return;


//假装下面有代码

//假装下面有代码

//假装下面有代码

在一个循环中想要终止程序的运行,需要多一个flag变量来处理,这样很丑陋并且还多出一个变量,很恶心,请问有没有比较优雅的方式???


拉丁的传说
浏览 806回答 2
2回答

长风秋雁

你要的效果用 .some() 就可以解决,如果想数据所有项全部都通过断言,可以用 .every():const arr = [1, 2, 3, 4, 5, 6, 7];if (arr.some(n => n === 5)) {    return;}// 假装下面有代码来看个直观点的if (arr.some(n => {    console.log(n);    return n === 5;})) {    console.log("哎呀不得了,中断了");    return;}console.log("后面的代码");输出12345哎呀不得了,中断了

一只萌萌小番薯

var a = [1,2,3,4,5,6];a.map(v => {    if(v > 2) throw new Error;    console.log(v)})按你这样用map可以强行抛出一个错误来退出。不过最好的方式应该是for循环中break;或者数组的some方法return
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript