第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

解析原生 JavaScript 中的路徑字符串

解析原生 JavaScript 中的路徑字符串

GCT1015 2022-10-13 16:21:57
我正在嘗試將字符串解析為理論上的虛擬路徑(全部在客戶端創(chuàng)建),使用普通的舊 JavaScript,沒有 NodeJS,什么都沒有(我嘗試創(chuàng)建一個新 URL 或?qū)⒙窂皆O(shè)置為 href 等,但我希望它在網(wǎng)絡(luò)工作者內(nèi)部工作)?;旧?,有一個虛擬文件系統(tǒng),它以 . 開頭,"C:/"然后像所有其他路徑系統(tǒng)一樣下降。假設(shè)我得到一個字符串作為輸入,例如"C:/someDir/someOtherDir/someThirdDir/../../folderInSomeDir/fileInFolderInSomeDir.txt"所以理論上這將訪問,正如文件本身的名稱所說,文件夾內(nèi)的文件,該文件夾本身位于名為someDir.最難處理的部分是該../../部分,因此上面的預(yù)期輸出字符串將是"C:/someDir/folderInSomeDir/fileInFolderInSomeDir.txt"我只是想知道如何準確地處理該../../部分,我嘗試拆分字符串/并循環(huán)遍歷各個部分,確定當(dāng)前字符串是否等于..,并跟蹤當(dāng)前目錄,這將立即在 each 之前..,但我對接下來要做什么以獲取輸出字符串一無所知。這是我的功能,目前b.onclick = () => {  out.innerHTML = resolve(p.value)};function resolve(path, basePath = "/") {                    var pathd = pathify(path)                    if(basePath != "/") basePath = resolve(basePath)                    var based = pathify(basePath)                    var baseDirs = based.split("/")                    var directs = pathd.split("/")                    var upDirs = 0                    var currentDir = ""                    var numberDirs          var result                    directs.forEach((x, i, ar) => {                        if(x == ".." || i == 0 && x == "") {                            upDirs++                        }                        else {                            currentDir = x                        }                    })          result = directs.join("/") //what else do I Do?!                    return result                }                                function pathify(path) {                    var newPath = ""                    if(typeof path == "string") {                                                var slashesDoubled = 0,                            dotsDoubed                        path.split("").forEach(x => {                            var isIts = [                                "\n"                            ]
查看完整描述

1 回答

?
狐的傳說

TA貢獻1804條經(jīng)驗 獲得超3個贊

您可以將其拆分并將其縮減為一個新數(shù)組。如果段是.,則忽略它,如果是..從結(jié)果中彈出最后一個段,則添加它:


const path = "C:/someDir/someOtherDir/someThirdDir/../../folderInSomeDir/fileInFolderInSomeDir.txt";


const result = path.split('/')

                   .reduce((a, v) => {

                     if (v === '.'); // do nothing

                     else if (v === '..') a.pop();

                     else a.push(v);

                     return a;

                   }, [])

                   .join('/');


console.log(result);


查看完整回答
反對 回復(fù) 2022-10-13
  • 1 回答
  • 0 關(guān)注
  • 169 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號