Node.js path.join反向操作

Node.js path.join反向操作,node.js,path,Node.js,Path,Node.js API中的示例 path.join('/foo', 'bar', 'baz/asdf', 'quux', '..'); // Returns: '/foo/bar/baz/asdf' 但是如何从“/foo/bar/baz/asdf”和“baz/asdf”中获取“/foo/bar” 我认为没有本地的方法可以做到这一点 我认为最好的方法是使用 path.join('/foo/bar/baz/asdf','..','..') 您可以像下面这样创建自己的函数 const magic =

Node.js API中的示例

path.join('/foo', 'bar', 'baz/asdf', 'quux', '..');
// Returns: '/foo/bar/baz/asdf'
但是如何从“/foo/bar/baz/asdf”和“baz/asdf”中获取“/foo/bar”


我认为没有本地的方法可以做到这一点

我认为最好的方法是使用
path.join('/foo/bar/baz/asdf','..','..')

您可以像下面这样创建自己的函数

const magic = function(originalPath, removePath) {
  let arr = removePath.split('/').filter((p) => p !== '').map(() => '..');
  return path.join(originalPath, ...arr);
}
您可能需要使用
path.sep
而不是
'/'
来支持各种操作系统

const magic = function(originalPath, removePath) {
  let arr = removePath.split('/').filter((p) => p !== '').map(() => '..');
  return path.join(originalPath, ...arr);
}