成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Web前端Tips:使用 forEach 循環中的 return 語句會發生什么?

開發 前端
使用 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 divide(a, b) {
if (b === 0) {
return "Division by zero is not allowed.";
}
return a / b;
}
const result1 = divide(10, 2);
console.log(result1); // 輸出:5
const result2 = divide(10, 0);
console.log(result2); // 輸出:"Division by zero is not allowed."

在上面的代碼中,divide 函數檢查除數是否為零。如果是,它將使用 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;
};
}
責任編輯:華軒 來源: 今日頭條
相關推薦

2023-04-28 15:20:37

JavaScript事件循環

2015-09-25 10:41:48

r語言

2021-08-19 17:27:41

IT數據中心災難

2021-12-27 08:24:08

漏洞網絡安全

2023-08-26 07:44:13

系統內存虛擬

2021-03-10 10:40:04

Redis命令Linux

2023-06-27 16:53:50

2015-11-19 00:11:12

2016-01-04 11:03:00

2015-04-16 10:40:29

2024-01-18 11:50:28

2023-04-27 07:40:08

Spring框架OpenAI

2019-02-27 10:18:26

重置Windows 10Windows

2020-12-10 07:37:42

HashMap數據覆蓋

2011-10-11 15:42:54

大數據數據庫

2012-12-25 15:19:20

Windows操作系統

2019-03-14 11:00:40

GoLua語言

2020-12-16 19:26:42

IIOTIOT工業物聯網

2024-09-12 09:34:32

2023-04-06 00:19:26

CSSSticky前端
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91精品成人久久 | 亚洲欧美在线视频 | 欧美午夜精品理论片a级按摩 | 99精品欧美一区二区三区 | 亚洲成人一区二区三区 | 韩日在线视频 | 精品久久久一区二区 | 欧美一区二区在线观看 | 亚洲精品乱码 | 狠狠视频 | 免费黄色的视频 | 欧美视频在线看 | 在线播放亚洲 | 国产午夜精品视频 | 高清人人天天夜夜曰狠狠狠狠 | 亚洲一区影院 | 99在线视频观看 | 在线观看黄视频 | 久久国产精品-国产精品 | 欧美一区二区三区在线播放 | 欧美1区2区 | 国产三级一区二区三区 | 日韩久久久久 | 99日韩 | 日韩欧美在线观看 | 最近中文字幕免费 | 欧美一级观看 | 免费观看一级黄色录像 | 韩日一区二区三区 | 亚洲国产欧美一区二区三区久久 | 中文字幕视频在线观看免费 | 毛片免费看的 | 日韩精品在线观看一区二区三区 | 亚洲成人一区二区 | 久久精品毛片 | 久久久久久久91 | 视频一区欧美 | 91资源在线| 国产精品视频网 | 欧美区在线 | 亚洲97|