方法javascript未提供完整输出

方法javascript未提供完整输出,javascript,Javascript,我有点像白痴,问这个问题,但学习javascript,在coderbyte上做简单的挑战,想反转一个字符串,这样就可以了 var randomString = "THIS IS THE STRING I AM TRYING TO REVERSE"; var newFunc = function() { var randomArray = randomString.split(" "); var newArray = []; for (var i = 0;

我有点像白痴,问这个问题,但学习javascript,在coderbyte上做简单的挑战,想反转一个字符串,这样就可以了

var randomString = "THIS IS THE STRING I AM TRYING TO REVERSE";    

  var newFunc = function() {
    var randomArray = randomString.split(" ");
    var newArray = [];

    for (var i = 0; i <= randomArray.length; i++) {

      newArray[i] = randomArray.pop();
      var diffString = newArray.join(" ");
    }
    console.log(diffString);
  };

  newFunc();`
var randomString=“这是我试图反转的字符串”;
var newFunc=函数(){
var randomArray=randomString.split(“”);
var newArray=[];

for(var i=0;i当您从
randomArray
弹出值时,它正在更改数组的长度。由于for循环在每次迭代时都会检查它,因此它将过早地脱离循环,因为长度变短

var randomString = "THIS IS THE STRING I AM TRYING TO REVERSE";    

  var newFunc = function() {
    var randomArray = randomString.split(" ");
    var newArray = [];

    for (var i = 0; i <= randomArray.length; i++) {

      newArray[i] = randomArray.pop();
      var diffString = newArray.join(" ");
    }
    console.log(diffString);
  };

  newFunc();`
修复方法是在开始弹出之前保存长度,并在for循环中使用该长度

var randomString = "THIS IS THE STRING I AM TRYING TO REVERSE";    

  var newFunc = function() {
    var randomArray = randomString.split(" ");
    var newArray = [];

    for (var i = 0; i <= randomArray.length; i++) {

      newArray[i] = randomArray.pop();
      var diffString = newArray.join(" ");
    }
    console.log(diffString);
  };

  newFunc();`
(假设您正在尝试颠倒字符串中单词的顺序。)

var randomString = "THIS IS THE STRING I AM TRYING TO REVERSE";    

  var newFunc = function() {
    var randomArray = randomString.split(" ");
    var newArray = [];

    for (var i = 0; i <= randomArray.length; i++) {

      newArray[i] = randomArray.pop();
      var diffString = newArray.join(" ");
    }
    console.log(diffString);
  };

  newFunc();`
var randomString=“这是我试图反转的字符串”;
var newFunc=函数(){
var randomArray=randomString.split(“”);
var newArray=[];
var length=randomArray.length;

for(var i=0;i当您从
randomArray
弹出值时,它正在更改数组的长度。由于for循环在每次迭代时都会检查它,因此它将过早地脱离循环,因为长度变短

var randomString = "THIS IS THE STRING I AM TRYING TO REVERSE";    

  var newFunc = function() {
    var randomArray = randomString.split(" ");
    var newArray = [];

    for (var i = 0; i <= randomArray.length; i++) {

      newArray[i] = randomArray.pop();
      var diffString = newArray.join(" ");
    }
    console.log(diffString);
  };

  newFunc();`
修复方法是在开始弹出之前保存长度,并在for循环中使用该长度

var randomString = "THIS IS THE STRING I AM TRYING TO REVERSE";    

  var newFunc = function() {
    var randomArray = randomString.split(" ");
    var newArray = [];

    for (var i = 0; i <= randomArray.length; i++) {

      newArray[i] = randomArray.pop();
      var diffString = newArray.join(" ");
    }
    console.log(diffString);
  };

  newFunc();`
(假设您正在尝试颠倒字符串中单词的顺序。)

var randomString = "THIS IS THE STRING I AM TRYING TO REVERSE";    

  var newFunc = function() {
    var randomArray = randomString.split(" ");
    var newArray = [];

    for (var i = 0; i <= randomArray.length; i++) {

      newArray[i] = randomArray.pop();
      var diffString = newArray.join(" ");
    }
    console.log(diffString);
  };

  newFunc();`
var randomString=“这是我试图反转的字符串”;
var newFunc=函数(){
var randomArray=randomString.split(“”);
var newArray=[];
var length=randomArray.length;

对于(var i=0;i,如前所述,在循环过程中更改长度。这里可能更容易使用Array.sort?或者…如ShadowRanger所述的Array.reverse()。
var randomString=“测试sds2 iujn3 iujn4 jijb5反向”;
功能反转(x){
return x//这是一个
.split(“”//转换为
.reverse()//反转数组顺序
.join(“”;//转换回
}

console.log(reverse(randomString));
如前所述,在循环期间更改长度。这里可能更容易使用Array.sort?或者…如ShadowRanger所述的Array.reverse()。
var randomString=“测试sds2 iujn3 iujn4 jijb5反向”;
功能反转(x){
return x//这是一个
.split(“”//转换为
.reverse()//反转数组顺序
.join(“”;//转换回
}

console.log(reverse(randomString));
正如其他人所指出的,检查数组长度的变化是一个问题;在前面缓存它一次,以便弹出正确的次数,只需将for循环更改为(同样从
修复,正如其他人所指出的,检查数组的变化长度是一个问题;预先缓存它一次,以便弹出正确的次数,只需将for循环更改为(同样从
修复问题很简单,每次调用
pop()时都会减少原始数组的长度)
提前检索数组长度,同时取
diffString
外部for循环…(注意:一行中的解决方案可能使用拆分->反向->连接),但我不想给你答案,想想看……就像mido说的,pop做到了。解决方案可以像这样简单:randoString.split(“”)。reverse().join(“”);也可以做
randomString.split(“”).reduceRight(函数(a,v){a.push(v);返回a;},[]).join(“”);
但是split/reverse/join可能更快;-)问题很简单,只要调用
pop()
先检索数组长度,还要将
diffString
放在循环的外部。。。(注:一行中的一个解决方案可能是使用split->reverse->join),但我不想给你答案,想一想……就像mido说的,pop做到了。解决方案可以是这么简单:randoString.split(“”).reverse().join(“”);也可以做
randomString.split(“”)。reduceRight(函数(a,v){a.push(v);返回a;},[]).join(“”);
但是拆分/反转/连接可能更快谢谢,这很有帮助,这个
var length=randomArray.length;
很酷,不知道你能做到。我仍然在查看其他人提供的答案,并了解更多。我实际上在纸上完成了循环,那时我意识到长度变短了。谢谢,这很有帮助,这个
varlength=randomArray.length;
很酷,不知道你能做到这一点。我仍在浏览其他人提供的答案并了解更多信息。我实际上在纸上完成了循环,那时我意识到长度变短了。