gpt4 book ai didi

javascript - 如何从字符串中获取一组单词?

转载 作者:行者123 更新时间:2023-12-02 23:47:01 27 4
gpt4 key购买 nike

我的场景如下:

我有一个很大的字符串。我想将其转换为一个数组,其中每个元素都是一个单词。然后,在我对方法进行的每次递归调用中,我想从单词数组中获取 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)

使用这段代码,我的代码到目前为止还没有崩溃。但是从第三次递归调用开始,我开始收到错误的文本。这些是我从很长的文本中得到的文本:

通话 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 

正如您所注意到的,在第三次调用中,它似乎超过了 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 

这段代码有什么问题?当我打印我正在使用的变量时,它们似乎具有正确的值。

谢谢!

最佳答案

首先,我将从创建数组开始,然后递归地拆分它。您可以使用数组方法 shiftpop 轻松完成此操作,具体取决于您想要的方向。

我可能会做这样的事情:

const text = 'This is a quick test text. We only have several words but it proofs the point.';
const words = text.split(' ');

const read = (maxWords) => {
let string = '';

for (let i = 0; i < maxWords; i++) {
if (words.length > 0) {
string += words.shift() + ' ';
}
}

// do something with the string
console.log(string);

if (words.length > 0) {
read(maxWords);
}
}

read(5);

或者如果你想保留单词数组:

const text = 'This is a quick test text. We only have several words but it proofs the point.';
const words = text.split(' ');

let position = 0;

const read = (maxWords) => {
let string = '';

for (let i = 0; i < maxWords; i++) {
if (position < words.length) {
string += words[position] + ' ';
position++;
}
}

console.log(string);
// do something with the string

if (position < words.length) {
read(maxWords);
}
}

read(5);

输出:

This is a quick test.
text. We only have several
words but it proofs the
point.

当然可以改进,因为我在这个例子中有冗余循环。

关于javascript - 如何从字符串中获取一组单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55813577/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com