我正在编写一个代码,要求我在数组中获取字符串的索引。我使用JavaScript indexOf函数来实现这一点。这里的问题是我能够获得编码为字符串但不能获得字符串索引的数字索引。
var codes = ["1", "2", "2A", "2B", "3", "4", "5", "6", "7", "8", "9", "10",
"11", "12", "13", "14", "15", "16", "17", "18", "19", "21", "22",
"23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33",
"34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44",
"45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "55",
"56", "57", "58", "59", "60", "61", "62", "63", "64", "65", "66",
"67", "68", "69", "70", "71", "72", "73", "74", "75", "76", "77",
"78", "79", "80", "81", "82", "83", "84", "85", "86", "87", "88",
"89", "90", "91", "92", "93", "94", "95"];
console.log(codes.indexOf("2A"));
我在控制台中收到的响应是-1而不是2,因为“2A”位于第2位。
答案 0 :(得分:11)
字符不是2A
,它在字符串的开头包含非打印字符符号Zero Width Joiner。
可以从
验证console.log("2A".charCodeAt(0)); // > 8205 // Note that the string is copied from the array `codes`
这使字符串无效。
难怪为什么indexOf
没有给出正确的索引。
答案 1 :(得分:3)