gpt4 book ai didi

javascript - String.substr() 返回整个字符串?

转载 作者:行者123 更新时间:2023-12-02 23:16:39 26 4
gpt4 key购买 nike

我正在编写一个应用程序,该应用程序获取歌词并根据节之间的换行符数量将其格式化为 Google 幻灯片。为了保持逻辑简单,我一直在测试同一组歌词并找到单词“foo”的索引,并使用该索引创建一个子字符串以插入数组中。该数组将用于在另一个函数中制作幻灯片。

当我尝试使用单词的索引来执行歌词.substr(0, index) 时,它会返回整个字符串,即使索引号有效。

function splitLyrics(lyrics) {
var lyricsArray = [];
var lengthOfChunk = 0;
var lengthOfSong = 0;
var lyricsToPush;

while (lyrics.length > 0) {
Logger.log(lyrics);
lengthOfSong = lyrics.length;
lengthOfChunk = lyrics.indexOf('foo');
Logger.log(lengthOfChunk);

if (lengthOfChunk = -1) {
lengthOfChunk = lengthOfSong;
}

lyricsToPush = lyrics.substr(0, lengthOfChunk);
Logger.log(lyricsToPush);
lyricsArray.push(lyricsToPush);

lyrics = lyrics.substr(lengthOfChunk + 1);
}

return lyricsArray;
}

我希望日志的输出是“原始歌词 blah blah”、索引号,然后是“blah blah”或任何子字符串输出。相反,我得到“原始歌词等等”、索引号,然后是“原始歌词等等”

最佳答案

您的情况的具体答案在于 if 语句中用于相等性检查的单个 = 。它实际上将 lengthOfChunk 的值设置为 -1,这意味着它采用 lyrics.substr(0) 返回完整的字符串。

但是,听起来您可以使用lyrics.split("[your word]"),而不必手动填充数组并移动到 while 循环中的下一个字符串。如果我正确地理解了问题,你可以:

splitLyrics = lyrics.split("foo");

这将为您提供一个包含不包括关键字的所有字符串的数组。

关于javascript - String.substr() 返回整个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57137605/

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