函数后面的括号是什么意思:reverse[0]?
what is the meaning of brackets after function : reverse[0]?
我正在使用节点 v10.1,并且我有一个对象可以保留一些 MIME 类型,如下所示:
let all_mime_types = {
//media types...
text: "text/plain",
html: "text/html",
jpeg: "image/jpeg",
jpg: "image/jpg",
png: "image/png",
javascript: "text/javascript",
css: "text/css"
};
当我想使用一些代码(基于我在目录中引用的文件)访问其中一种 MIME 类型时,我看到了这段代码:
let mime =
all_mime_types[
path
.extname(full_address)
.split(".") // seperates the "." from path.extname(full_address);
.reverse()[0]
];
我的问题是 .reverse()[0]
部分 ...
当我删除 0 或 [0] 时,它 returns 未定义。
.reverse()[]
和 [0]
是什么意思?
split(".")
将字符串作为输入,returns 数组作为输出
- reverse 获取数组并将其反转,顾名思义
- [0] 是数组的第一个元素,它又是原始数组的最后一个元素
因此,此代码的作用是将 "/path/to/file/some.txt"
、returns 等字符串作为结果 "txt"
。
让我们改写这种不那么混乱的风格:
let file_path = path.extname(full_address)
let split_by_extension_path = file_path.split(".")
let reversed_path = split_by_extension_path.reverse()
let extension = reversed_path[0]
let mime = all_mime_types[extension]
请注意此代码存在多个问题。
首先,并不是所有的文件都有扩展名,也不是所有的文件扩展名都是正确的。
其次,您的 JavaScript 文件可能有 .js
扩展名,而不是 .javascript
。 .text
和 .txt
文件相同。
我正在使用节点 v10.1,并且我有一个对象可以保留一些 MIME 类型,如下所示:
let all_mime_types = {
//media types...
text: "text/plain",
html: "text/html",
jpeg: "image/jpeg",
jpg: "image/jpg",
png: "image/png",
javascript: "text/javascript",
css: "text/css"
};
当我想使用一些代码(基于我在目录中引用的文件)访问其中一种 MIME 类型时,我看到了这段代码:
let mime =
all_mime_types[
path
.extname(full_address)
.split(".") // seperates the "." from path.extname(full_address);
.reverse()[0]
];
我的问题是 .reverse()[0]
部分 ...
当我删除 0 或 [0] 时,它 returns 未定义。
.reverse()[]
和 [0]
是什么意思?
split(".")
将字符串作为输入,returns 数组作为输出- reverse 获取数组并将其反转,顾名思义
- [0] 是数组的第一个元素,它又是原始数组的最后一个元素
因此,此代码的作用是将 "/path/to/file/some.txt"
、returns 等字符串作为结果 "txt"
。
让我们改写这种不那么混乱的风格:
let file_path = path.extname(full_address)
let split_by_extension_path = file_path.split(".")
let reversed_path = split_by_extension_path.reverse()
let extension = reversed_path[0]
let mime = all_mime_types[extension]
请注意此代码存在多个问题。
首先,并不是所有的文件都有扩展名,也不是所有的文件扩展名都是正确的。
其次,您的 JavaScript 文件可能有 .js
扩展名,而不是 .javascript
。 .text
和 .txt
文件相同。