Javascript无法正确比较两个字符串

时间:2015-07-11 00:47:59

标签: javascript string compare

我首先创建一个字符列表,并将其中两个保存为依赖于用户输入的字符串。我不确定问题所在,所以我复制了完整的代码https://jsfiddle.net/mboguslaw97/6w6xj1f3/3/。左上角的卡片和左下角的两张卡片都是L' L'在这些卡之后单击另一张卡以激活警报声明。

var letters = 'ABCDEFGHIJKL'.repeat(2).split('');
user_input = 11;
cards_flipped.push(user_input);
user_input = 23;
cards_flipped.push(user_input);
letter1 = letters[cards_flipped[0]];
letter2 = letters[cards_flipped[1]];

alert(letter1 == 'L');
alert(letter2 == 'L');
alert(letter1 == letter2)
//Alerts true, true, false

有人可以向我解释如何检测字符串是否相等以及为什么字符串不能这样比较?

1 个答案:

答案 0 :(得分:1)

console.log(typeof letter1, letter1 instanceof Array);
object true

letter1和letter2都是单值数组。其中任何一个“等于”字母'L'的唯一原因是由于类型转换:在与字符串文字进行比较时,在数组上调用toString()方法。如果您比较letter1.toString() == letter2.toString()letter1[0] == letter2[0],它们将是平等的。我更新了fiddle

干杯。