这条线如何" return fileNameParts [fileNameParts.length-1]; "工作?

时间:2017-01-25 14:48:53

标签: javascript

const readable = getReadableStreamSomehow();
readable.on('data', (chunk) => {
// chunk.length bytes of data received
});

这是整个代码。我理解这一切除了最后一行。我知道它的作用,但我不知道如何或为什么。倒数第二行将字符串拆分为"。",然后最后一行如何实际获取字符串右侧的所有字母?

6 个答案:

答案 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];

选择该数组的最后一个元素