const readable = getReadableStreamSomehow();
readable.on('data', (chunk) => {
// chunk.length bytes of data received
});
这是整个代码。我理解这一切除了最后一行。我知道它的作用,但我不知道如何或为什么。倒数第二行将字符串拆分为"。",然后最后一行如何实际获取字符串右侧的所有字母?
答案 0 :(得分:4)
通过调用var filenameParts = i.split(".");
,可以创建包含不同部分的数组。想象一下,我们使用文件名test.txt
,我们使用该字符串进行拆分,我们将获得如下数组:
filenameParts = ["test", "txt"]
因为数组中第一项的索引是0,并且我们需要数组中的最后一项,所以我们调用filenameParts.length-1
来到最后一项。
有关javascript数组的更多信息,请访问here。
答案 1 :(得分:2)
.split()
函数返回字符串的数组,而不是字符串。表达式filenameParts[filenameParts - 1]
获取数组的最后一个元素。
答案 2 :(得分:1)
filenameParts.length
提供filenameparts
的计数,在上面的行中分割。 filenameParts[number]
传递数组中的一个项目,该项目位于number
。 -1
因为数组从0开始而不是1.因此它传递数组的最后一项。清除?
答案 3 :(得分:0)
filenameParts
是一个数组,你用它的索引读取一个值。在这种情况下,值是“。”之间字符串的一部分。
filenameParts.length
等于数组内的值计数。当数组索引从0开始时,您必须减去1以获得最后一个值的索引。
答案 4 :(得分:0)
看起来您的函数getFileExtension
旨在返回给定文件的文件扩展名。例如,getFileExtension('image.gif')
会返回gif
。
在该行中(假设i
设置为image.gif
):
var filenameParts = i.split(".");
filenameParts
将是一个数组,其中image.gif
已在句点上拆分。所以filenameParts = ['image', 'gif']
其中元素零是image
而元素一是gif
。请记住,数组索引是从零开始的!
在最后一行:
return filenameParts[filenameParts.length-1];
函数本身将返回filenameParts
数组中的最后一个元素(['图像',' gif']),即gif
。部分filenameParts.length-1
表示获取filenameParts
数组的长度(为2),减去1(即1),并返回filenameParts
数组的该元素。所以我们返回filenameParts[1]
这是数组的最后一个元素(记住,数组索引是从零开始的)。
要获取数组的最后一个元素,我们也可以完成
return filenameParts.pop();
因为pop()
函数返回数组的最后一个元素。
答案 5 :(得分:0)
var filenameParts = i.split('.')
返回由i
filenameParts[filenameParts.length-1];
选择该数组的最后一个元素