假设我们有这个URL“ / user / id”。
let url = "/user/id"
所以我需要分割这些URL并创建一个单独的URL。像这样的东西:
["/", "/user", "/user/id"]
我可以用 .split(“ /”)进行拆分。我认为拆分后需要一些 forEach(),但我做对了。
答案 0 :(得分:4)
实际上,如果使用indexOf
查找斜线并使用.slice
获取零件,则更容易:
const result = ["/"];
let pos = 1;
while(true) {
pos = url.indexOf("/", pos + 1);
if(pos < 0) break;
result.push(url.slice(0, pos + 1));
}
result.push(url);
或者“功能性方法”将是:
url.split("/").map((_, i, arr) => arr.slice(0, i + 1).join("/") || "/");
答案 1 :(得分:1)
For-loop解决方案:
https://jsfiddle.net/c9asnfw4/1/
let url = '/user/id',
result = ['/'],
parts = url.split('/');
for(let i = 1; i < parts.length; i++) { // Skip first /
const part = parts[i];
if(i === 1) { // Start slash is already existing
result.push(result[i-1] + part);
} else if(i > 1) {
result.push(result[i-1] + '/' + part);
}
}
输出
(3)[“ /”,“ / user”,“ / user / id”]
编辑:略微缩短:
let url = '/user/id',
result = ['/'],
parts = url.split('/');
for(let i = 1; i < parts.length; i++) { // Skip first /
result.push( (result[i-1]) + (i > 1 ? '/' : '') + parts[i] );
}