If/Else语句不起作用,给出未定义的



我正在做一个项目,我需要国家名称的英文版本。当给出一个国家的非英语拼写时,我试图有一个if/else语句来给出英语拼写,但它不起作用。我真的很感谢任何关于我为什么会有这个问题的帮助或建议。非常感谢。

let countryName;
if (country === 'Shqipëria' || 'hqipëria') {
let countryName ='Albania';
}
else if (country === 'Hayastán' || 'hayastán') {
let countryName ='Armenia';
}
...
else if (country === 'Italia' || 'italia') {
let countryName ='Italy';
}
...
else if (country === 'Türkiye' || 'türkiye') {
let countryName = 'Turkey';
}
else if (country === 'Ukraїna' || 'Україна' || 'ukraїna' || 'yкраїна') {
let countryName = 'Ukraine';
}
else {
let countryName = country;
}

console.log(countryName)
console.log(country)

console.log(country)给出了Italia,但console.log(countryName)未定义。

我也尝试过这样做:

const [countryName, setCountryName] = useState('')
if (country === 'Shqipëria' || 'hqipëria') {
setCountryName('Albania');
}
else if (country === 'Hayastán' || 'hayastán') {
setCountryName('Armenia');
}
...
else if (country === 'Italia' || 'italia') {
setCountryName('Italy');
}
...
else if (country === 'Türkiye' || 'türkiye') {
setCountryName('Turkey');
}
else if (country === 'Ukraїna' || 'Україна' || 'ukraїna' || 'yкраїна') {
setCountryName('Ukraine');
}
else {
setCountryName(country);
}

console.log(countryName)
console.log(country)

但这给了我一个错误,说明Uncaught Error: Too many re-renders. React limits the number of renders to prevent an infinite loop.

如其他答案中所述,您的条件只包含一个相等检查,因此它总是返回true,因为字符串的值本身就是truthy,因此您永远不会通过第一个条件。为了简化if语句,可以使用includes方法。例如:

if (['Ukraїna','Україна','ukraїna','yкраїна'].includes(country))

并明确声明国家变量一次&在每个条件下重新分配。

let countryName;
if (...) {
countryName = "x"
}

取消您的第一个代码:countryname不应该声明多次所以你的代码应该是这样的:

let countryName;
if (country === 'Shqipëria' || country === 'hqipëria') {
countryName ='Albania';
}
else if (country === 'Hayastán' || country === 'hayastán') {
countryName ='Armenia';
}
else if (country === 'Italia' || country === 'italia') {
countryName ='Italy';
}
else if (country === 'Türkiye' || country === 'türkiye') {
countryName = 'Turkey';
}
else if (country === 'Ukraїna' || country === 'Україна' || country === 'ukraїna' || country === 'yкраїна') {
countryName = 'Ukraine';
}
else {
countryName = country;
}
console.log(countryName);
console.log(country);

此外,您应该使用

if(variable === 'value' || variable === 'value') 

而不是

if (variable === 'value' || 'value')

最新更新