gpt4 book ai didi

javascript - 在 JavaScript 中退出 for-of 循​​环 block 时使用 Break 语句与提前返回

转载 作者:行者123 更新时间:2023-11-28 14:18:14 24 4
gpt4 key购买 nike

我有一个 for of 循环,如果没有结果值,我需要退出。我突然想到可以使用早期的 return 语句来处理这个问题,或者使用 break 语句。需要明确的是,在这种情况下,在我跳过的部分之后的该代码块中没有其他代码可以执行,因此我假设其中一个代码可以在这里工作(中断或返回)。在这种特殊情况下,有什么功能或性能原因需要使用其中一种而不是另一种吗?

选项 1:(中断)

  for (let diff of differences) {
if (!diff.path) break;

if (diff.path[0] !== "updatedAt") {
const docChange = new ChangedProp(doc, diff, lastEditedBy, "customer");
docChange.log();
}
}

选项 2:(返回)

  for (let diff of differences) {
if (!diff.path) return;

if (diff.path[0] !== "updatedAt") {
const docChange = new ChangedProp(doc, diff, lastEditedBy, "customer");
docChange.log();
}
}

最佳答案

Any functional or performance reason to use one over the other in this particular case?

不,如果我们假设 for-of 循环是包含它的函数中的最后一个循环。可能存在某种方式的风格争论,但没有功能或性能原因。

显然,如果 for-of 循环之后有代码,则使用 break 将导致该代码运行,而使用 >return 将导致该代码被跳过。这是一个显着的功能差异:

function a(array) {
for (const value of array) {
if (value % 2 == 0) {
break;
}
}
console.log("This line gets reached");
}
function b(array) {
for (const value of array) {
if (value % 2 == 0) {
return;
}
}
console.log("This line does NOT get reached");
}

const arr = [1, 2, 3];
a(arr);
b(arr);

在该示例中,ab 中的代码是相同的,只是 a 使用 breakb 使用 return (最后记录的文本略有不同)。

但是,如果循环后没有 console.log,则没有功能差异。

关于javascript - 在 JavaScript 中退出 for-of 循​​环 block 时使用 Break 语句与提前返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56460891/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com