JavaScript: упрощение заданного абсолютного пути для файла в стиле Unix
Базовый JavaScript: упражнение 142 с решением
Напишите программу на JavaScript, чтобы упростить заданный абсолютный путь к файлу в стиле Unix.
Пример решения:
HTML-код:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>Simplify a given absolute path for a file in Unix-style.</title>
</head>
<body>
</body>
</html>
Код JavaScript:
function simplify_path(main_path) {
var parts = main_path.split('/'),
new_path = [],
length = 0;
for (var i = 0; i < parts.length; i++) {
var part = parts[i];
if (part ==='.' || part === '' || part ==='..') {
if (part ==='..' && length > 0) {
length--;
}
continue;
}
new_path[length++] = part;
}
if (length === 0) {
return '/';
}
var result = '';
for (var i = 0; i < length; i++) {
result += '/'+new_path[i] ;
}
return result;
}
console.log(simplify_path("/home/var/./www/../html//sql/"));
Пример вывода:
/ Главная / вар / HTML / SQL
Блок - схема:
Версия ES6:
function simplify_path(main_path) {
const parts = main_path.split('/');
const new_path = [];
let length = 0;
for (var i = 0; i < parts.length; i++) {
const part = parts[i];
if (part ==='.' || part === '' || part ==='..') {
if (part ==='..' && length > 0) {
length--;
}
continue;
}
new_path[length++] = part;
}
if (length === 0) {
return '/';
}
let result = '';
for (var i = 0; i < length; i++) {
result += `/${new_path[i]}` ;
}
return result;
}
console.log(simplify_path("/home/var/./www/../html//sql/"));
Демонстрация в реальном времени:
См. Pen javascript-basic-упражнение-142 от w3resource ( @ w3resource ) в CodePen .
Предыдущий: Напишите программу на JavaScript, чтобы найти количество элементов, представленных в обоих заданных массивах.
Далее: Напишите программу на JavaScript для сортировки строк заданного массива строк в порядке увеличения длины.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования
disqus2code