我有一个像这样的字符串被分开:
var tokens = "first>second>third>last".split(">");
每次迭代我想要的是返回
Iteration 0: "last"
Iteration 1: "third>last"
Iteration 2: "second>third>last"
Iteration 3: "first>second>third>last"
我正在考虑使用递减索引进行循环....但是有更有效的方法吗?
for (int w = tokens.length-1; w == 0; w--)
{
}
答案 0 :(得分:3)
var tokens = "first>second>third>last".split(">");
var out = []
while(tokens.length) {
out.unshift(tokens.pop());
console.log(out.join('>'))
}
答案 1 :(得分:0)
OTOH这是最简单的方法
var tokens = "first>second>third>last".split(">");
text = ''
for (w = tokens.length-1; w >= 0; w--)
{
if(text != ''){
text = tokens[w] + '>'+text;
}else{
text = tokens[w]
}
console.log(text);
}
答案 2 :(得分:0)
您可以尝试以下方法:
var tokens = "first>second>third>last".split(">");
for (var w = 0; w < tokens.length; w++)
{
var substr = tokens.slice(tokens.length - 1 - w, tokens.length).join(">");
console.log("Iteration " + w + ": " + substr)
}
答案 3 :(得分:0)
您还可以使用联接来反转原始拆分。我不确定效率,但它很清晰:
var tokens = 'first>second>third>last'.split('>');
for (var i = tokens.length - 1; i >= 0; --i) {
var subset = tokens.slice(i).join('>');
console.log(subset);
}
答案 4 :(得分:-1)
var tokens = "first>second>third>last".split(">");
var text = [];
for (var i = tokens.length; --i >= 0;) {
text.unshift(tokens[i]);
var str = text.join(">");
alert(str); // replace this with whatever you want to do with str
}
应该做的伎俩。