DaV*_*nce 54 javascript optimization
我的字符串格式如下:
path/to/a/filename.txt
现在我想做一些字符串操作,这使我能够非常有效地从这段代码中删除"filename.txt"部分.换句话说,我希望我的字符串成为这样:
path/to/a/
最有效的方法是什么?目前我正在分割字符串并重新连接除最后一个元素之外的单独元素,但我感觉这是一种真正的,非常低效的方法.这是我目前效率低下的代码:
res.getPath = function(file)
{
var elem = file.split("/");
var str = "";
for (var i = 0; i < elem.length-1; i++)
str += elem[i] + "/";
return str;
}
Run Code Online (Sandbox Code Playgroud)
Kee*_*ter 110
使用lastIndexOf()查找最后一个斜杠的位置,并使用substring()获取斜杠之前的部分.
str.substring(0, str.lastIndexOf("/"));
Run Code Online (Sandbox Code Playgroud)
Gum*_*mbo 10
这个怎么样:
"path/to/a/filename.txt".split("/").slice(0, -1).join("/")+"/"
Run Code Online (Sandbox Code Playgroud)
Ric*_*all 10
如果您使用的是 Node.js:
const path = require("path")
const removeFilePart = dirname => path.parse(dirname).dir
removeFilePart("/a/b/c/d.txt")
// Returns "/a/b/c"
Run Code Online (Sandbox Code Playgroud)
在节点中,您可以使用path.dirname
const path = require('path')
fullFilePath = '/some/given/path/to-a-file.txt'
directoryPath = path.dirname(fullFilePath)
console.log(directoryPath) // ===> '/some/given/path'
Run Code Online (Sandbox Code Playgroud)