Давайте предположим, что у меня есть простая строка, такая как hello
, и мне нужно проверить, содержится ли она в другой строке, такой как
one two three\n
abcdefghieklm\n
hello world. \n
qwertyuiolpas\n
mnbvcxzasofsd\n
, которая может содержать ее в горизонтальной или вертикальной плоскости, например кроссворды.
function findString(s, block) {
return findHorizontal(s, block) || findVertical(s, block) || findDiagonal(s, block);
}
function findHorizontal(s, block) {
var lines = block.split("\n");
var found = false;
lines.forEach(line => {
if (line.includes(s)) {
found = true;
}
});
return found;
}
function findVertical(s, block) {
var lines = block.split("\n");
var i = Math.max(...lines.map(line => line.lenght()));
var j = lines.lenght();
var k = 0;
var l = 0;
while (k < j) {
var m = 0;
while (l < i) {
var line = lines.get(k);
var letter = line.charAt(l);
if (letter = s.charAr(m)) {
m = m + 1;
} else {
m = 0;
}
if (m = s.lenght()) {
return true;
}
l = l + 1;
}
k = k + 1;
}
}
Пока у меня есть горизонтальное правое и вертикальное, оно не всегда работает, и я не знаю, есть ли кто-нибудь, кто может видеть, что не так?