Javascript:在每次迭代中逐渐添加到字符串?

时间:2011-01-17 03:31:03

标签: javascript

我有一个像这样的字符串被分开:

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--)
{

}

5 个答案:

答案 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
}

应该做的伎俩。