我需要使用Javascript来搜索首字母(不确定这是不是正确的名称,如果不是,请改变问题)。例如:使用主题"Abraham Maslow"
将返回true
,并搜索"John"
在"Johnathan Smith"
也将是true
在JavaScript中优化缩写搜索
搜索"mas"
。但是,在"Marygold Ding"
上搜索"gold"
将是false
。
我最初以为的:
function search(initial, subjectsArray) {
var result = [];
var tmp = null;
var initialLowercase = initial.toLowerCase();
for (var i = 0; i < subjectsArray.length; i++) {
tmp = subjectsArray[i].toLowerCase();
if (tmp.startsWith(initialLowercase)
|| tmp.indexOf(' ' + initialLowercase) != -1) {
result.push(subjectsArray[i]);
}
}
return result;
}
如何优化这个代码?
所以,基本上,你有一个名字(或名称列表),你想检查某个子字符串是否是名字或姓氏的开始?首字母缩写不是正确的词,但我也想不出一个更好的词。你可以对格式做出什么保证? – 2012-02-16 11:58:57
缩略语? :) – Joe 2012-02-16 11:59:53
@AnthonyGrist主题的格式?它们将是任何包含一个或多个空格的字符串列表......例如,其中一个名称将只是“卡尔森”,而另一个名称则是“John Ronald Reuel Tolkien”。 – RedDragon 2012-02-16 12:01:25