【发布时间】:2016-08-08 20:53:18
【问题描述】:
我正在尝试创建一个函数,如果在另一个字符串中找到至少一个字符串数组的元素,则该函数返回 true。
function findInString(str) {
var fruits = ["orange", "banana", "grape"];
for(var i = 0; i < fruits.length; i++) {
if (str.indexOf(fruits[i]) > -1) {
return true;
}
}
return false;
}
var a = findInString("I love orange juice."); //=> returns true
var b = findInString("I don't like peach."); //=> returns false
这个函数可以解决问题,但我确信可能有一些数组或字符串方法可以做同样的事情,而不必遍历数组。有什么想法吗?
谢谢。
【问题讨论】:
-
如果你在这里没有得到答案,你可以考虑在codereview.stackexchange.com发帖
-
代码审查可能想看看实际代码是什么。这看起来真的像是示例代码,要求以不同的方式来做同样的事情(即特定的编程问题),这更适合 Stack Overflow。
-
您必须以某种方式遍历整个数组,否则解决方案将不完整。
-
如果没有找到,你只需要遍历整个数组。
-
注意我对这个挑战很感兴趣,并做了一些有限的测试。在我非常有限的测试中,在大约 100 个阈值点之后,将字符串拆分为一个数组并比较两个数组实际上更快。因此,在您多次处理相同的字符串之前,您当前的选项会更快。
标签: javascript arrays search