mm1*_*975 4 javascript typescript
我有一个有很多名字的数组:{'John Doe', 'Peter Shark', ...}.
现在我想比较和匹配一个字符串,例如,如果数组包含它,则'This is your turn John Doe, pls do it'返回名称.该字符串可以是长文本.
我试过这样,但它不起作用:
var searchStr = "This is your turn John Doe, pls do it"
var stringArray = ["John Doe", "Peter Shark"];
return (stringArray.indexOf(searchStr) > -1)
Run Code Online (Sandbox Code Playgroud)
Cer*_*nce 10
你需要搜索相反的方法 - 迭代stringArray并检查some名称是否包含在searchStr:
var searchStr1 = "This is your turn John Doe, pls do it";
var stringArray = ["John Doe", "Peter Shark"];
console.log(stringArray.some(name => searchStr1.includes(name)));
var searchStr2 = "This is your turn Foo Bar, pls do it";
console.log(stringArray.some(name => searchStr2.includes(name)));Run Code Online (Sandbox Code Playgroud)
虽然some非常干净和清晰,但for循环比数组方法稍微快一些,但是只要你有数以万计的项迭代:
var searchStr = "This is your turn John Doe, pls do it";
var stringArray = ["John Doe", "Peter Shark"];
const searchFor = stringArray => {
for (let i = 0, { length } = stringArray; i < length; i++) {
if (searchStr.includes(stringArray[i])) return true;
}
return false;
};
console.log(searchFor(["John Doe", "Peter Shark"]));
console.log(searchFor(["Foo Bar", "Peter Shark"]));Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
121 次 |
| 最近记录: |