gpt4 book ai didi

javascript - JS 中 if_else 中的 for_each

转载 作者:行者123 更新时间:2023-12-03 00:08:56 24 4
gpt4 key购买 nike

我是编码世界的新手,刚刚开始学习 javascript。我试图设计一种表格类型的输出,但无法完成它。这就是我想要实现的目标

“一月 - 1 - 第 1 季度”和第二行“2 月 - 2 日 - 第 1 季度”...等等

我使用了 foreachif/else 并将它们组合起来,但无法获得输出,可能是因为我们无法添加 foreach在 if 语句之类的里面!有人可以帮助我哪里出错了吗?

const Months = ['jan','Feb']

if (Months = 'Jan'||'Apr'||'Jul'||'Sep') {
Months.forEach(function(Month, index) {
console.log(`${Month}--${index + 1}`)}
} else {
console.log(`${Month}--${index + 1}`)
}

最佳答案

目前还不清楚您想要实现什么目标,但我想提供一些我在您的代码中看到的内容。由于您是新手,我知道您可能还不太熟悉该语言。

首先,if (Months = 'Jan'||'Apr'||'Jul'||'Sep') 无论如何都会返回 true,因为你正在制作三个单独的错误!不用担心,让我为您一一分解。

第一个错误是您在 Months = 'Jan' 中使用了单个等号。单个等号就是所谓的赋值运算符。您将变量 Months 设置为等于字符串“Jan”。您正在寻找的是 STRICT EQUALITY 运算符 ===,它测试两个事物是否相等。

请参阅此引用:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators

您的第二个错误是您正在查看整个 Months 变量并尝试将其值与字符串进行比较。如果您像这样使用严格相等:

if (Months === 'Jan')

它仍然会失败,因为 Months 是一个数组。您需要做的是使用 Months.forEach 迭代数组的每个元素,然后对每个月进行相等比较。

您的第三个错误是您使用 OR 运算符 || 的方式。

让我们看看这段代码,它将修复前面的两个错误:

var months = ['Jan','Feb','Apr','Jul','Sep'];
months.forEach(element => {
if (element === 'Jan' || 'Feb' || 'Mar'){
console.log('Gotcha');
}
});

这仍然总是返回 true,因为由 OR 运算符分开的每件事都将被独立评估。为了正确运行测试,您需要在每个部分中进行单独的相等测试,并用 OR 分隔。

运行以下代码片段并查看输出:

var foo = "Hi";

const test1 = (foo === "Boo" || "You");
const test2 = (foo === "Boo" || foo === "You");

console.log(test1);
console.log(test2);

if (test1) {
console.log("This is true??")
}

那么,那里发生了什么?

test1 最终被分配了值“You”,因为第一部分的计算结果为 false,因此它分配了第二部分。

正如我们所料,test2 是错误的。

但是如果我们在 test1 上使用“if”语句(当前设置为字符串“You”)会发生什么?

为了清楚起见,请看一下这个答案。 why does if("string") evaluate "string" as true but if ("string"==true) does not?

最后,您想要的是这样的:

var months = ['Jan','Feb','Apr','Jul','Sep'];
months.forEach(element => {
if (element === 'Jan' || element === 'Feb') {
console.log('woot');
}
});

关于javascript - JS 中 if_else 中的 for_each,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54835857/

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