为什么这个Javascript找不到正确的索引
Why is this Javascript failing to find the right index?
我在测试另一个SO问题的答案时,遇到了这种奇怪的行为,我一辈子都不知道发生了什么。
代码:
function translateLetter(input) {
const untranslated = "abcdefghijklmnopqrstuvwxyz";
const translated = "zyxwvutsrqponmlkjihgfedcba";
var i = untranslated.indexOf(input);
console.log(i);
return translated.substring(i,1);
}
console.log(translateLetter("a"));
console.log(translateLetter("b"));
console.log(translateLetter("c"));
预期输出:
0
z
1
y
2
x
实际输出:
0
z
1
<--- WTH?
2
y <--- WTF?
JSFiddle 上的代码
如果速度很重要,我会使用一个对象来进行查找。例如
var translateLetter= {a:'z',b:'y'... etc }
然后你可以简单地做->
console.log(translateLetter['a'])
使用.substr()
作为长度。CCD_ 2占据一个位置。
第一个空格为null,因为您在函数中传递了"b",indexOf函数返回1,然后将其设置为变量"i",i随后用于子字符串函数,子字符串函数返回中间的值,包括给定值的第一个和不包括最后一个索引,因此子字符串get(1,1(和1,1指向同一索引因此它返回null。
第二次也是如此。
子字符串(包含开始索引,不包含最后索引(;
相关文章:
- 气质的“nestRemoting()”有时可以'找不到关系
- 错误405:向Java控制器(Ajax)发送JSON时找不到POST方法
- 找不到模块捆绑包
- for循环中的javascript if语句找不到==
- 为什么JavaScript可以'找不到给定的InnerHTML并返回Cannot set property
- 失败:等待Protractor与页面同步时出错:“”;在窗口上找不到角度”;
- Babel编译错误:找不到模块核心js/library/fn/get迭代器
- [Vue warn]:找不到元素
- ngRoute找不到模板
- 未能加载,因为找不到支持的源.当播放HTML5音频元素时
- 因果报应-找不到模块:错误:无法解析模块'scs'
- Angular 2:在本地.json文件上找不到文件
- module.js在运行iron节点时找不到模块
- 放大弹出生成“;找不到文件”;YouTube视频的错误
- 为什么php找不到JSON发送的索引
- 索引在文本中找不到字符串
- 另一个“;z索引不起作用”;在IE中>7、研究后找不到答案
- 升级到typescript 2后,找不到(string), Object, Date, Json的require索引
- 为什么这个Javascript找不到正确的索引
- 得到一个未定义的索引错误,不知道为什么完全不知道为什么,似乎找不到任何其他解决方案