我需要使用未知数量的/ segments /.
的url字符串创建和数组str = "/about/history/today/";
所需的数组看起来像这样
array = ["/about/history/today/", "/about/history/", "/about/"];
我最好的猜测是将字符串拆分为数组以获取计数。然后将字符串推送到新数组,减去最后一个段,推送,重复。不幸的是,我无法弄清楚正则表达式是否会切断最后一段。创建一个数组只是为了计算只创建一个全新的数组似乎很愚蠢。
更新我想我想出来了
var str = "/about/history/today/";
var array = str.split("/");
array.pop();
array.shift();
array.reverse();
var finalArray = [str];
_.forEach(array, function(value) {
str = str.replace(value + "/","");
finalArray.push(str);
});
答案 0 :(得分:0)
以下是reduce
函数的一个很好的解决方案:
var t = "/about/history/today/".split("/").reduce(function(a, b) {
if (b != '' && a) {
a.push(b);
}
return a
}, []).reduce(function(a, b, index, ar) {
a.push("/" + ar.slice(0, ar.length-index).join("/") + "/");
return a;
}, []);
console.log(t)