javascript найти окно размера n вокруг фразы в строке - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть строка, например «я не могу спать, что мне делать», а также фраза, которая содержится в строке «не могу спать». То, что я пытаюсь сделать sh, это получить окно n размера вокруг фразы, даже если с обеих сторон нет n слов. Так что в этом случае, если бы у меня был размер окна 2 (2 слова на любой размер фразы), я бы хотел «я не могу спать, что должен».

Это мое текущее решение, пытающееся найти размер окна из 2, однако происходит сбой, когда количество слов слева или справа от фразы меньше 2, я также хотел бы иметь возможность использовать окна разных размеров.

const get_window = (phase, word, size) => {
    let splited = phase.split(/\W/)
    let idx = splited.indexOf(word)
    let a = parseInt(size / 2)
    let init = -a
    let final = size % 2 == 0 ? a : a + 1
    let n = []
    for (let i = init; i < final; i++) {
        if (splited[idx + i] != undefined) n.push(splited[idx + i])
        else n.push("<PAD>")
    }
    return n
}

console.log(get_window("hi, i'm a boy", "hi", 2))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...