Javascript if 语句在本应为真时返回假
Javascript if statement come back false when it should be true
我不明白为什么 temp
变量只返回 false。我试过 ==
只是想看看使用严格比较是否是问题所在,但它没有改变。只是为了仔细检查,我通过在控制台中打印变量的类型来确保变量的类型相同。
发生的另一件奇怪的事情是,当我使用这一行时,console.log('temp = ' + temp);
来查看 temp
中的内容,除了空白 space 之外什么都不会打印。但是如果我使用 console.log(temp);
,它会打印存储在 temp
. 中的内容 console.log('temp = ' + temp);
似乎已经自行修复,所以不要管那个问题,但它仍然没有返回真值。
var upFormData = formData.toUpperCase();
console.log('Form Data: ' + upFormData);
degrees[str] = [];
degrees[str][0] = data[0];
for(var i = 1; i < data.length; i++)
{
var temp = data[i][5].toUpperCase();
console.log(temp);
//console.log('temp = ' + temp);
console.log('upFormData = ' + upFormData + ' ' + typeof upFormData + ' ' + typeof temp);
if(upFormData === temp)
{
console.log('MATCH');
}
else
{
console.log('NOT A MATCH');
//console.log(temp);
//console.log('upFormData = ' + upFormData + ' ' + typeof upFormData + ' ' + typeof temp);
}
此脚本的结果:
有人可以帮忙解释一下我没有做什么吗?如果您需要更多信息,请告诉我。
编辑:
您似乎想检查表单 (formData
) 中输入的值是否在 data
数组中。
使用some
var upFormData = formData.trim().toUpperCase();
var hasFormData = data.some( s => s[5].trim().toUpperCase() === upFormData ); //hasFormData will return true if any value matches
如果您想 filter
输出与 forData
值匹配的 data
值,请使用 filter
var matchedData = data.filter( s => s[5].trim().toUpperCase() === upFormData );
我不明白为什么 temp
变量只返回 false。我试过 ==
只是想看看使用严格比较是否是问题所在,但它没有改变。只是为了仔细检查,我通过在控制台中打印变量的类型来确保变量的类型相同。
发生的另一件奇怪的事情是,当我使用这一行时, 中的内容 console.log('temp = ' + temp);
来查看 temp
中的内容,除了空白 space 之外什么都不会打印。但是如果我使用 console.log(temp);
,它会打印存储在 temp
.console.log('temp = ' + temp);
似乎已经自行修复,所以不要管那个问题,但它仍然没有返回真值。
var upFormData = formData.toUpperCase();
console.log('Form Data: ' + upFormData);
degrees[str] = [];
degrees[str][0] = data[0];
for(var i = 1; i < data.length; i++)
{
var temp = data[i][5].toUpperCase();
console.log(temp);
//console.log('temp = ' + temp);
console.log('upFormData = ' + upFormData + ' ' + typeof upFormData + ' ' + typeof temp);
if(upFormData === temp)
{
console.log('MATCH');
}
else
{
console.log('NOT A MATCH');
//console.log(temp);
//console.log('upFormData = ' + upFormData + ' ' + typeof upFormData + ' ' + typeof temp);
}
此脚本的结果:
有人可以帮忙解释一下我没有做什么吗?如果您需要更多信息,请告诉我。
编辑:
您似乎想检查表单 (formData
) 中输入的值是否在 data
数组中。
使用some
var upFormData = formData.trim().toUpperCase();
var hasFormData = data.some( s => s[5].trim().toUpperCase() === upFormData ); //hasFormData will return true if any value matches
如果您想 filter
输出与 forData
值匹配的 data
值,请使用 filter
var matchedData = data.filter( s => s[5].trim().toUpperCase() === upFormData );