为什么return;不会跳出整个function?

来源:15-2 LeetCode:46. 全排列

蛋挞狂魔

2021-03-13

const backTrack = (path) => {

        if(path.length === nums.length){

            res.push(path);

            return;

        }

        nums.forEach(n => {

            if(path.includes(n)){ return;}

            backTrack(path.concat(n));

        })

    };

为什么return之后还可以继续执行下面的循环体呢?

另外,调用时传入backtrack([])的参数是[] ,是因为path初始化为一个空数组吗?

写回答

2回答

泉白水

2021-05-01

//img.mukewang.com/szimg/608d3bca092564ac08840542.jpg

因为forEach和for循环是不一样的,return实际上相当于for循环的continue

1
0

lewis

2021-03-14

return之后不会往后执行。因为我们有很多循环,return一个,其他还在run

0
0

JavaScript版数据结构与算法 轻松解决前端算法面试

夯实算法基础,填补技术短板,助力面试考题最后一公里

2479 学习 · 683 问题

查看课程