一、具体题目
// 输入: 一个包含.. 和. 的相对路径
// 输出: 一个绝对路径
cd .
cd ..
cd /a/b/c/../../ -> /a
cd /a/b/c/../././././../ -> /a
二、具体代码
/*
cd .
cd ..
cd /a/b/c/../../ -> /a
cd /a/b/c/../././././../ -> /a
*/
function getAddress(url) {
let array = url.split('/');//['a', 'b', '..', '.', '.', '.', '.', '..']
let stack = [];
for(let i=0; i<array.length; i++) {
if(array[i] === '..') {
stack.pop();
}else if(array[i] === '.' || array[i] === '') {
continue;
}else {
stack.push(array[i]);
}
}
return stack.length === 0 ? '/' : '/' + stack.join('');
}
let url = '/a/b/c/../././././../';
let result = getAddress(url);
console.log(result);//'/a'