curFiles[i].split("/").length长度不是固定的,我这样运用到实际项目是不合理的,我该如何何修改,使其长度无论如何变化都可用
var a = "";
for(var i = 0; i < curFiles.length; i++){
var arr = curFiles[i].split("/");
var len = arr.length;
for(var j = 0; j < len - 1; j++){
a += arr[j];
a += "/"
}
a += arr[len - 1];
}
写个递归方法,直接返回需要的文件名。要控制好递归退出的时机
我真是没明白a/b/test.js你将字符串分成数组【a, b., test.js】然后再拼接成a/b/test.js?
授之以渔:
var str = a#b#c#jj;
var str = str.sprit("#").join("/"); //将a#b#c#jj转换成a/b/c/jj
写这段的代码有什么意义?不是a=curFiles[i]吗,为什么要拆分后由组合?
最简单的一种方式: curFiles[i].split("/").length%7
望采纳
不完全明白你的最终意图,最好是举个例子:如要把一个字符串变成什么样子
你filename是原字符串的最后一段。你要用原字符串中除了最后一段的内容再加上filename。这不就和原字符串完全一样了么。
如果filename不是原字符串的最后一段。而是要用filename的值替换原字符串的最后一段,可以用
a = curFiles[i].replace(/[^\/]*$/,filename)
题主,你这个操作一大堆还是和原来的值一样的吧?如果你想要这个的话,嗯!!!
请用:a = curFiles[i] 不行吗??? js里面值类型复制就是一个新的
如果是像做有位说的把 a#b#c#dd.txt改成a/b/c/dd.txt, 也不用增加什么代码难度用什么先split在join。
请用: 'a#b#c#dd.txt'.replace(/#/g, '/')
如果楼主问的是如何给数组转成带间隔的字符串
请用:join('')就是一个好方法了
如果楼主只是问的这种重复拼接字符串的方法。
请用:有for,while,高大上点的还有递归。
首先如果想把一个 searchArr => newArr 直接用 newArr = searchArr.concat() 就能得到一个完全新的相同数组