Mad*_*ist 3 javascript regex string algorithm
我正在尝试使用 Javascript 来查看某个字符串是否包含组成另一个字符串的所有字符。
例如,单词“hello”包含组成单词“hell”的所有字符。此外,单词“hellowy”包含组成单词“yellow”的所有字符。
最重要的是,无论两个字符串中的字符顺序如何,该方法都需要正常工作。此外,字符数也很重要。“Hel”不包含构成“hell”的所有字符。这严格指的是字符数:需要两个 l 才能组成单词“hell”,而“hel”只有一个。
进一步澄清问题,我并不担心在从字符串的字符组成子字符串后是否留下一些“未使用”的字符。也就是说,“hell”仍然应该包含单词“hell”的所有字母。
我怎样才能有效地完成这个任务?也许有正则表达式解决方案?速度在某种程度上是一个问题,但并不是绝对关键。
您可以使用every:
function test(string, substring) {
var letters = [...string];
return [...substring].every(x => {
var index = letters.indexOf(x);
if (~index) {
letters.splice(index, 1);
return true;
}
});
}
Run Code Online (Sandbox Code Playgroud)
Every将在第一个假值中失败,然后它不会搜索每个字母。