通过在Javascript中旋转字符串来打印所有可能性

时间:2019-05-14 10:49:58

标签: javascript string

如何在javascript中旋转字符串并在不使用任何javascript函数的情况下打印字符串的旋转版本 ,只有for循环。

给出一个字符串:

"hell"

输出:

"lhel", "llhe", "ellh", "hell"

我尝试过但没有成功

    var str1 = "hell";

    
    let i = 0;
    let len = str1.length - 1;
    let temp;
    
    for (let j = 0; j < len+1; j++) {
        temp = str1[len]
        while (i < len) {
            console.log(str1[i]);
            temp += str1[i];
            i++;
        }
        console.log(temp);
        //console.log(typeof temp, typeof str1)
        str1 = temp;
    }

6 个答案:

答案 0 :(得分:2)

您快到了!缺少一件事,i应该在for循环的每次迭代中重置,否则,while (i < len)将仅被播放一次:

var str1 = "hell";

let len = str1.length - 1;
let temp;
    
for (let j = 0; j < len+1; j++) {
    let i = 0;  // <-------------------- notice this
    temp = str1[len]
    while (i < len) {
        //console.log(str1[i]);
        temp += str1[i];
        i++;
    }
    console.log(temp);
    //console.log(typeof temp, typeof str1)
    str1 = temp;
}

答案 1 :(得分:2)

您可以进行嵌套循环,将字符放在ij的位置,并使用reminder operator %来防止字符超出字符串。

var string = "hell",
    i, j,
    temp;

for (i = 0; i < string.length; i++) {
    temp = '';
    for (j = 1; j <= string.length; j++) temp += string[(i + j) % string.length];
    console.log(temp);
}

答案 2 :(得分:2)

您可以尝试此方法。基本上,您有两个循环,第一个循环(i)用于可能,第二个循环用于移位

var strValue = "hell";
var temp;
for(var i = 0; i < strValue.length; i++){
  temp = "";
  for(var j = 1; j < strValue.length; j++){
    temp += strValue[j];
  }
  temp += strValue[0]
  strValue = temp;
  console.log(strValue)
}

答案 3 :(得分:0)

在第一个循环中,添加索引大于移位步长(在本例中为i)的所有符号。

在第二个循环之后添加休息符号。

const str = 'hello';

for (let i = 0; i < str.length; i++) {
  let shifted = '';

  for (let j = i; j < str.length; j++) {
    shifted += str[j];
  }
  
  for (let j = 0; j < i; j++) {
    shifted += str[j];
  }
  
  console.log(shifted);
}

答案 4 :(得分:0)

我知道这已经被回答了,这就是我会这样做的方式。
也许你可以从中学到东西。

false

答案 5 :(得分:-2)

let str = 'hell';



for(let i=0;i<str.length;i++){
	str = str.substring(1,str.length) + str[0];
	console.log(str);
}