Мой сценарий следующий:
У меня очень большая строка.Я хочу преобразовать его в массив, где каждый элемент является словом.Затем при каждом рекурсивном обращении к моему методу я хочу взять 50 элементов из массива слов.Например, при первом вызове я хочу принять от 0 до 50, затем при следующем вызове - от 50 до 100 и т. Д.
Моя проблема возникает при проверке, является ли мой начальный и конечный диапазон для массивавне границ или нет.
Мой код выглядит следующим образом:
public async readTts(start: number, end: number): Promise<any> {
this.talking = true;
let words: Array<string> = document.getElementById('contenido').innerText.split(' ');
let string = '';
words.forEach((word: string) => string += word + ' ');
console.log(string)
await this.tts.speak({
text: string,
locale: 'es-ES',
rate: 1
});
if (end != words.length - 1) {
if (start + 50 < words.length - 1) start += 50;
else start = words.length - 1;
if (end + 50 < words.length - 1) end += 50;
else end = words.length - 1;
this.readTts(start, end);
} else this.talking = false;
}
this.readTts(0, 50)
С этим кодом мой код до сих пор не потерпел крах.Но начиная с 3-го рекурсивного вызова, я начинаю получать неправильный текст.Вот тексты, которые я получаю из своего очень длинного текста:
Звоните 1:
La filosofía debería ser accesible para todo el mundo. Por eso publicaré esto en Wrixy.Pero, la filosofía no es un montón de fechas y de estupideces que te obligan a estudiar en el instituto. Si piensas que la filosofía es eso, estás muy equivocado o equivocada.La filosofía es comprender el
Звоните 2:
mundo, pero no sólo "el mundo" en general... es SOBRE TODO comprenderte A TI MISMO.Por eso, a pesar de que tengo sólo 22 años,... y que bueno, es probable que me queden muchas cosas por vivir y que probablemente en el futuro termine editando algunas partes de esta obra... Considero que he vivido suficientes cosas como para dar mi punto de vista. Para dar a entender las cosas que yo he vivido, de una forma práctica y sencilla.No esperéis que cuide mucho las formas ni revise los textos. Leer esta obra será como simplemente estar chateando con un amigo. Un
Звоните 3.
que he vivido suficientes cosas como para dar mi punto de vista. Para dar a entender las cosas que yo he vivido, de una forma práctica y sencilla.No esperéis que cuide mucho las formas ni revise los textos. Leer esta obra será como simplemente estar chateando con un amigo. Un amigo que tal vez ha vivido cosas con más intensidad que vosotros y que puede que podáis aprender una o dos cosas de él.Con lo cual, con el simple hecho de que esto sirva a alguno de vosotros para progresar en vuestra vida, y madurar mental y emocionalmente antes de tiempo, mucho antes de lo que lo hice yo y sin tener que pasar por los mismos infiernos por los que tuve que pasar yo... pues me alegro.Titulo esta obra "filosofía de Dalas" porque realmente es MI filosofía de la vida. Es la forma en la que YO veo las
Как вы можете заметить, в 3-м вызове кажется, что это более 50 слов, и это повторяющийся текст, который был напечатан в вызове 2, вот этот:
que he vivido suficientes cosas como para dar mi punto de vista. Para dar a entender las cosas que yo he vivido, de una forma práctica y sencilla.No esperéis que cuide mucho las formas ni revise los textos. Leer esta obra será como simplemente estar chateando con un amigo. Un
Что не так наэтот код?Когда я печатаю переменные, которые я использую, они, кажется, имеют правильные значения.
Спасибо!