在undefined + string中显示的输出中,如何删除它

时间:2016-01-19 13:37:58

标签: javascript

function reverse_string() {
  var text = document.getElementById("string_reverse").value;
  var split_string = text.split(" ");
  var output = "";
  var output2 = "";

  function isEven(split_string) {
    if (split_string.length % 2 == 0)
      return output;
    else
      return output2;
  }

  for (var i = 0; i < split_string.length; i += 2) {
    output += " " + split_string[i + 1] + " " + split_string[i];
    document.getElementById("reverse").innerHTML = output;
  }

  output2 += " " + output + " " + split_string[split_string.length - 1];
  document.getElementById("reverse").innerHTML = output2;
}
<div class="row">
  <div class="col-sm-3">Input Any string :
    <input type="text" style="width:250px" name="STRAT_TIME" id="string_reverse" placeholder="ex: w1 w2 w3 w4 w5 w6 w7 w8">
  </div>
  <div class="col-sm-3">
    <INPUT NAME="check" TYPE=Button VALUE="string reverse" onClick="reverse_string(); return false;">
  </div>
</div>
<div id="reverse" class="row">
</div>

显示的输出:undefined + string

我该如何删除?

我喜欢它,如果输入是1 2 3 4那么o / t是2 1 4 3

另一个条件是如果字符串是奇数

ex 1 2 3 4 5然后需要2 1 4 3 5

4 个答案:

答案 0 :(得分:0)

试试这个

for (var i = split_string.length-1; i >= 0; i --) {

    output += " " + split_string[i ] + " ";
}
document.getElementById("reverse").innerHTML = output;

答案 1 :(得分:0)

这是因为,您使用" "并使用split_string[i + 1]进行拆分。

如果我进入&#34; Hello World! FOO&#34;

split_string就像

0: Hello
1: World!
2: Foo.

第一次迭代将正常工作。然后你增加i+=2,现在i2split_string[i + 1]split_string[3],即未定义。

如果您未使用任何spaces输入值,也会发生同样的情况。

您可以尝试这样的事情:

&#13;
&#13;
function reverse_string() {
  var text = document.getElementById("string_reverse").value;
  var split_string = text.split(" ");
  var _temp = [];
  var len = split_string.length;
  
  console.log(len, split_string)
  
  for(var i=0; i<len/2; i++){
     _temp.push(split_string[(i*2) + 1]);
    _temp.push(split_string[(i*2)]);
  }
  console.log(_temp);
  
  document.getElementById("reverse").innerHTML = _temp.join(" ");
}
&#13;
<div class="row">
  <div class="col-sm-3">Input Any string :
    <input type="text" style="width:250px" name="STRAT_TIME" id="string_reverse" placeholder="ex: w1 w2 w3 w4 w5 w6 w7 w8">
  </div>
  <div class="col-sm-3">
    <INPUT NAME="check" TYPE=Button VALUE="string reverse" onClick="reverse_string(); return false;">
  </div>
</div>
<div id="reverse" class="row">
</div>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

&#13;
&#13;
function reverse_string() {
  var text = document.getElementById("string_reverse").value;
  var split_string = text.split(" ");
  var output = "";
  var output2 = "";

  function isEven(split_string) {
    if (split_string.length % 2 == 0)
      return output;
    else
      return output2;
  }

  for (var i = split_string.length-1; i >= 0; i --) {

output += " " + split_string[i ] + " ";
}
 document.getElementById("reverse").innerHTML = output;
 
}
&#13;
<div class="row">
  <div class="col-sm-3">Input Any string :
    <input type="text" style="width:250px" name="STRAT_TIME" id="string_reverse" placeholder="ex: w1 w2 w3 w4 w5 w6 w7 w8">
  </div>
  <div class="col-sm-3">
    <INPUT NAME="check" TYPE=Button VALUE="string reverse" onClick="reverse_string(); return false;">
  </div>
</div>
<div id="reverse" class="row">
</div>
&#13;
&#13;
&#13;

答案 3 :(得分:0)

试试这个简单的方法......

$(stty size|cut -d' ' -f1)

希望这能帮到你......

DEMO