【发布时间】:2019-07-22 08:11:09
【问题描述】:
我正在编写一个应用程序,它可以根据节之间的换行符数将歌词格式化为 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”或任何子字符串输出。相反,我得到“原始歌词等等”,索引号,然后是“原始歌词等等”
【问题讨论】:
-
这里有
lengthOfChunk = lyrics.indexOf('foo');吗?您正在寻找'foo'第一次出现。但是歌词有'blah'。 -
歌词只是一个例子。我使用了一个存在于包含歌词的实际巨大字符串中的实际单词。
标签: javascript google-apps-script substr