此代码将集成到AJAX聊天系统中,以实现用户名的制表符自动完成:
var usernames = new Array();
usernames[0] = "Saladin";
usernames[1] = "Jyllaby";
usernames[2] = "CadaverKindler";
usernames[3] = "qbsuperstar03";
var text = "Text and something else q";
// Start of the script to be imported
var searchTerm = text.slice(text.lastIndexOf(" ") + 1);
var i;
for(i = 0; i < usernames.length && usernames[i].substr(0,searchTerm.length) != searchTerm; i++);
// End of the script to be imported
document.write(usernames[i]);
需要注意的几点:用户名数组和text变量都将通过AJAX从聊天本身加载(不幸的是,我不知道),最终输出也将由AJAX处理。
有没有更有效的方法可以做到这一点?
另外,有关如何处理被搜索到的searchTerm的多个实例的任何技巧?
最佳答案
微观优化:无需获取子字符串并进行比较(创建大量临时字符串)...
usernames[i].substr(0,searchTerm.length) != searchTerm
...您应该使用indexOf,它不会创建临时字符串...
usernames[i].indexOf(searchTerm) == 0
您“发现searchTerm的多个实例”是什么意思?您能否举例说明您正在考虑的问题?
关于javascript - 有什么方法可以使此JavaScript选项卡完成脚本更有效?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2770052/