【问题标题】:Finding min in a stack- Won't print out any result在堆栈中查找最小值 - 不会打印出任何结果
【发布时间】:2012-12-11 06:25:06
【问题描述】:

试图找到这个堆栈的最小值;但是,每当我在 JSFiddle 中运行它时,什么都不会打印出来……有人向我解释为什么?这是代码:

function min_stack() {
var min = 0; 
this.elements = [];

this.push = function(element) {
    this.elements.push(element);
}

this.pop = function() {
    return this.elements.pop();
}

this.min = function() {
    min = this.elements[0]; 
    if (this.elements.length > 0) {
        for(int i = 0; i < this.elements.length; i++) {
            if (min > this.elements[i]) {
                min = this.elements[i]; 
            }
        }
    }
    return min; 
   }    

}

var myStack = new min_stack();
myStack.push(5);
myStack.push(4);
myStack.push(3);
print("[" + myStack.elements + "]");
print("min:" + myStack.min());
myStack.pop();
print("[" + myStack.elements + "]");
print("min:" + myStack.min());
myStack.pop();
print("[" + myStack.elements + "]");
print("min:" + myStack.min());

【问题讨论】:

  • 您知道print() 实际上会打印页面吗?您是要改用console.log 还是alert

标签: javascript minimum stack


【解决方案1】:

for 中存在语法错误,该错误会立即显示在浏览器控制台中

变化:

for(int i = 0; i < this.elements.length; i++) { 

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

演示:http://jsfiddle.net/y7wET/

正如 cmets 中指出的那样,我怀疑你想使用 print

【讨论】:

    【解决方案2】:

    int i = 0; 不是有效的 JavaScript。 JavaScript 不允许在声明变量时指定变量的类型;请改用var i = 0;

    另外,因为“window”是全局对象,所以在网页上下文中,print() 相当于window.print(),它将页面打印到您的打印机。

    出于调试目的,您可以使用window.alert()弹出一个消息框;如果这太烦人了,您可以做一些事情,例如将输出添加到 textarea 元素。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-24
      • 2012-08-23
      • 2020-04-09
      • 2018-10-30
      • 1970-01-01
      • 2015-05-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多