首次出现负数时

时间:2016-03-06 21:04:22

标签: javascript count

我是javascript的新手,所以我决定在这里问一下。我有一个小javascript的问题,显示电梯将停在哪里(哪个楼层)。它从0楼开始,每个U表示UP,每个D表示DOWN。所以这就是我所拥有的。

    <script language="JavaScript">

 var temp = "UUDDUDUUDUDUDUDUDUDUDDD"; //

var hore = (temp.match(/U/g) || []).length;      //UP
var dole = (temp.match(/D/g) || []).length;      //DOWN

pociatocne_poschodie = 0;
vytah_zastavil = (hore - dole) + pociatocne_poschodie;

document.write(vytah_zastavil);

 </script>

效果很好,但我需要在地下室第一次升降时输出(经过多少步骤)。

有什么想法吗?提前致谢

4 个答案:

答案 0 :(得分:0)

请查看这是否是您需要的,您需要将日志更改为document.write目前获得第23步的第一步

var temp = "UUDDUDUUDUDUDUDUDUDUDDD"; 

var floor = 0;

for (var i = 0; i<temp.length; i++){
  var c = temp.charAt(i);
  if(c === "U"){
    floor++;
  }
  if(c === "D"){
    floor--;
  }
  if(floor === -1){
    document.write("reached basement in " + (i+1) + " steps");
  }  
}

答案 1 :(得分:0)

谢谢!这就是我需要的东西!

&#13;
&#13;
var temp = "UUDDUDUUDUDUDUDUDUDUDDD"; 

var floor = 0;

for (var i = 0; i<temp.length; i++){
  var c = temp.charAt(i);

  if(c === "U"){
    floor++;
  }
  if(c === "D"){
    floor--;
  }
  if(floor === -1){
    console.log("reached basement in " + i + "steps");
  }  
}
&#13;
&#13;
&#13;

答案 2 :(得分:0)

var temp = "UUDDUDUUDUDUDUDUDUDUDDD"; //

var count = 0;
var basement = -1;

var step;

for (var i = 0; i < temp.length; i++) {
    if (temp[i] == "U") {
        count += 1
    } else if (temp[i] == "D") {
        count -= 1
    }
    if (count == basement) {
        step = i;
        break;
    }
}
console.log(step);

答案 3 :(得分:0)

这是我的解决方案,包含各种示例。

我希望能帮助你。

class Node {

  private int number;
  private Node next;

  public Node(int n) {
     this.number = n;
     this.next = null;
  }
  public Node getNext() {
      return next;
  }
  public int getNumber() {
      return number;
  }
  public void setNext(Node n) {
      if (n == null)
          return;

      n.setNext(next);
      next = n;
  }
  public String toString() {
      return number + "";
  }

}