【发布时间】:2015-04-14 16:07:53
【问题描述】:
我需要一些关于字符串操作的建议。这是一个可能的字符串:
"/branches/projects/MyTool/MyTool/someOtherFolderOrFile"
我需要的是一个包含以下内容的数组:
['/branches', '/branches/projects','/branches/projects/MyTool','/branches/projects/MyTool/MyTool']
所以要澄清这个数组应该包含什么:最后一个文件或文件夹的所有父路径。最后一个文件或文件夹被排除在数组中。
我知道我可以在"/" 处拆分字符串,然后可以遍历数组、连接字符串并从数组中删除最后一个条目。这个方法我会递归调用,直到数组中没有元素为止。然后在每次迭代时将连接的字符串保存到一个新数组中,该数组将在最后保存所需的结果......
但是我问我如何做到非常干净和简单,我相信你们中的某个人可以想出一个极好的解决方案:)
编辑 这是我刚刚提出的当前解决方案:
var string = "/branches/projects/MyTool/MyTool/anotherFolderOrFile";
var helperArr = string.split("/");
var endArray = [];
getParentArray();
console.log(endArray);
function getParentArray() {
if(helperArr.length == 1) {
return;
}
else {
var helperString = "";
for(var i = 0;i<helperArr.length;i++) {
helperString = helperString+helperArr[i];
if(i!= helperArr.length -1) {
helperString = helperString+"/";
}
}
endArray.push(helperString);
helperArr.length = helperArr.length-1;
getParentArray();
}
}
【问题讨论】:
-
网址是否始终采用完全相同的格式?
-
它更多的是文件路径而不是 URL,但是是的。它总是以 / 开头,并且总是没有斜杠结束。只是路径中的元素数量可能会有所不同(例如“/branches/test”或“/trunk/test2/anotherElement”)
标签: javascript jquery arrays string