web前端tips使用forEach循环中的return语句会发生什么?
近日,笔者在认真搬砖的过程中,突然遇到一个问题,请看大屏幕(代码):data() { return { statusList: [ { code: "1", name: "已保存" }, { code: "2", name: "已提交" } ] } }, computed: { statusShow() { return function(type) { this.statusList.forEach(el => { if (el.code == type) { return el.name; } }); return "" }; } },
这段代码的意义在于,将数组中对象的 code 值与传入的 type 值进行对比,如果相等的话,即返回对应的 name 值,否则返回空。你猜猜当传入的 type 值为 1 时,statusShow 应该显示什么?
按设想,statusShow 应该显示为 已保存 ,然而实际情况返回的是 空 。是不是一脸问号???
不急,在解决这个问题前,我们先来了解了解涉及到的知识。
javascript中 return 有什么用处
在 JavaScript 中,return 是一个关键字,用于从函数中返回一个值,并且停止函数的执行。return 语句是函数中非常重要的一个组成部分,因为它允许函数将计算结果返回给函数调用者。 return 语句有以下用处:
1.返回一个值:return 语句允许函数返回一个值。函数可以对输入值进行计算,并将结果作为输出返回给函数调用者。例如:function add(a, b) { return a + b; } const sum = add(2, 3); console.log(sum); // 输出:5
在上面的代码中,add 函数接收两个参数 a 和 b,将它们相加并使用 return 语句返回结果。在 add 函数被调用时,返回的结果被存储在 sum 变量中,并被打印出来。
2.终止函数执行:return 语句还可以用于终止函数的执行。当 return 语句被执行时,函数将立即停止执行,并返回指定的值(如果有)。这对于在函数执行过程中遇到错误或特定条件时需要立即停止函数执行的情况非常有用。例如:function pide(a, b) { if (b === 0) { return "Division by zero is not allowed."; } return a / b; } const result1 = pide(10, 2); console.log(result1); // 输出:5 const result2 = pide(10, 0); console.log(result2); // 输出:"Division by zero is not allowed."
在上面的代码中,pide 函数检查除数是否为零。如果是,它将使用 return 语句返回错误消息。如果除数不为零,它将使用 return 语句返回计算结果。
3.返回 undefined:如果函数没有指定 return 语句,或者 return 语句没有指定返回值,则函数将返回 undefined。例如:function greet(name) { console.log(`Hello, ${name}!`); } const result = greet("John"); console.log(result); // 输出:undefined
在上面的代码中,greet 函数将 Hello, John! 字符串打印到控制台上,但未使用 return 语句返回任何值。因此,result 变量包含 undefined。
forEach 中使用 return
在 JavaScript 中,使用 forEach 方法遍历数组时,如果在函数内部使用 return 语句,它只会跳出当前的循环,而不会跳出整个函数。 例如,下面的代码演示了在 forEach 循环中使用 return 语句:const numbers = [1, 2, 3, 4, 5]; numbers.forEach(num => { if (num === 3) { return; } console.log(num); }); // 输出: // 1 // 2 // 4 // 5
在上面的代码中,当 num 等于 3 时,使用 return 语句跳出了当前循环,所以数字 3 没有被打印出来。但是,forEach 循环仍然会继续执行,直到遍历完整个数组。
因此,如果我们想要跳出整个函数,可以使用 Array.prototype.some() 或 Array.prototype.every() 方法来代替 forEach,或使用异常捕捉 try{}catch{} 在需要结束循环处 throw new Error("退出循环") 这三个方法可以在满足某个条件时提前跳出循环。
针对案例中,还可以使用一种方法,即不跳出循环,在循环未开始前定义一个变量,循环中给此变量赋值,最后 return 出此变量。statusShow() { return function(type) { let ret = ""; this.statusList.forEach(el => { if (el.code == type) { ret = el.name; } }); return ret; }; }
结语
牵手 持续为你分享各类知识和软件 ,欢迎访问、关注、讨论 并留下你的小心心
文案没有结果的事,不要弄的人尽皆知,最后无法收场人的一生就像在述雾里,但总有一天雾会消失。你从来不知道在你身后我看了你多久开始很草率,结束的轰轰烈烈。被暗恋的人真的没有感觉吗?你待在一团火旁边会感受不到热吗?可能这个世界上除了星
熬过冬天,春天终将到来在人生最低谷的时候,都是怎么过来的当我领着600元的月工资,却发现自己父母背负着100万的高利贷,是多么无力?当一家五口人为着生计,不得不分割全国5个不同的地区各自生活,是何等悲凉
人到中年,请收起你的大方人到中年,经常会有这种感慨周围依靠自己的人变多了,自己的责任和面子变重了,烦恼也随之而来了。对别人有求必应,结果落得出力不讨好。想证明自己的能力,最后让自己疲惫不堪。就连说出自己的
散文初冬,午后阳光里的温暖作者子墨午后的阳光很暖,这几日的阴霾天气,让我们似乎已经忘记了阳光的味道,那是一种内心的明媚,是心境里的温暖。波弄日光翻上栋。窗含烟景直浮空。初冬的午后,难得一见如此好的阳光,落在
华为Mate50系列全系支持昆仑玻璃,耐摔性提升至10倍当手机不慎滑落,你的心情会是如何?大多数人可能会暗叹一声糟糕,手机又要摔坏了。但对于华为Mate50系列用户而言却无需担心,因为有昆仑玻璃做支撑,无论手机怎样不小心掉落都会非常抗摔
冬天又到了,为什么你比别人更怕冷?相信大家身边可能都存在这样的人,一到冬天就手脚冰凉,怎么都暖和不起来,这不仅和气温降低有关,也可能是身体存在一些问题,那主要可能是什么情况呢?1。新陈代谢的速度比较慢,血液循环不良
羽绒服瘦瘦裤绝美,冬天就该这么穿,既时髦保暖又洋气显瘦说到羽绒服,人们常常就把它和时尚绝缘体挂钩,总觉得羽绒服的搭配不够时髦洋气,但其实羽绒服这种单品只要你搭配对了,立马就能够成为人群中最亮眼的崽,并且赚足百分百的回头率。而且在今年秋
冬季寒冷,女性多吃这三种食物,温暖身体,抵御寒冷,暖暖地过冬冬季一到,很多女性朋友就会觉得特别难熬,因为会手脚冰凉,几乎一个冬天都不会暖过来,特别的难捱。主要是因为女性的特殊的生理结构,导致很多女性就会怕寒,气血不足,自身抵御寒冷的能力下降
养气血就是养命,建议女性冬天常吃4样,补气血,身体好少生病导语养气血就是养命,建议女性冬天常吃4样,补气血,身体好少生病冬天一到,天气变得越来越冷了,只穿秋裤已经不御寒了,一定要怎么暖和怎么穿,冬天气温低,懂得保暖非常重要,尤其是女性朋友
致敬柿子,致敬中年人中年人,就是一枚柿子!中年人的味道,就是柿子的味道!中年人的颜色,就是柿子的颜色!中年人的成熟,就是柿子的成熟!中年人的品质,就是柿子的品质!曾经,那么苦涩,涩的让人拉不开舌头!曾
中国好声音战队大考核,有人输在自己,有人则输在导师每年都在播出的中国好声音今年依然很火。时间过得很快,国庆加更之后,节目马上就要迎来收官了。在以往的节目中,导师对战赛结束之后是导师混战,这一季玩法变了,改成了队内战。相比之下,这个