【发布时间】:2019-10-21 02:35:00
【问题描述】:
我有一个由多个句子组成的变量,这些句子用点分隔,名为var a。然后我想检查Result的值是否等于var a上的句子之一:
代码如下:
var a = "my name is jack. your name is sara. her name is joe. his name is mike";
var nameSplit = a.split(".");
console.log(nameSplit.length);
console.log(nameSplit);
var Result = "his name is mike";
var i;
for (i = 0; i < nameSplit.length; i++) {
if (nameSplit[i].includes(Result)) {
console.log("Result is one of the sentences on var a");
}
}
代码运行良好。
问题是,如果我在var a 上有 1000 句或 10000 句,我不知道这段代码是否能快速高效地运行?
是否有任何修改可以使代码更快地执行?
有没有更好的解决方案?
【问题讨论】:
-
好吧,你可以删除拆分。您最终仍在寻找
a.includes(Result)- 拆分与结果无关。除此之外,您仍然需要线性搜索,因此无法改进。 -
除了不需要拆分之外,您可以查看有关性能的帖子:stackoverflow.com/questions/5296268/…。 Felix kling 很好地介绍了包含其他字符串的字符串的性能更高。
-
不清楚部分句子是否算作匹配。是否应该匹配:
his name is?还是您只想要完整匹配?
标签: javascript