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

Javascript Failing to Correctly Compare Two Strings

本文关键字:两个 字符串 比较 Javascript      更新时间:2023-09-26

我首先创建一个字符列表,并将其中两个保存为依赖于用户输入的字符串。我不确定问题所在,所以我复制了完整的代码在这里https://jsfiddle.net/mboguslaw97/6w6xj1f3/3/。左上角的卡片和下面的卡片都是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

谁能给我解释一下如何检测字符串是否相等,为什么字符串不能用这种方式比较?

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

letter1和letter2都是单值数组。它们中的任何一个"等于"字母"L"的唯一原因是类型转换:当与字符串文字进行比较时,正在对数组调用toString()方法。如果比较letter1.toString() == letter2.toString()letter1[0] == letter2[0],它们是相等的。我更新了小提琴

欢呼。