在堆栈中查找最小值 - 不会打印出任何结果

Posted

技术标签:

【中文标题】在堆栈中查找最小值 - 不会打印出任何结果【英文标题】: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 【参考方案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 元素。

【讨论】:

以上是关于在堆栈中查找最小值 - 不会打印出任何结果的主要内容,如果未能解决你的问题,请参考以下文章

寻找旋转排序数组中的最小值 II(数组二分查找)打印1000以内的所有素数,并从键盘输入一个正整数,判断是否为素数数组元素统计(算法初阶基础知识)

在连续数据中查找全局最小值

设计一个数据结构来支持堆栈操作并找到最小值

如何使用数组来查找 C 中的最小值(可能还有最大值?)? [复制]

HLOOKUP 后获取最小值

用于在多张纸上循环的范围内查找最大值和最小值的 VBA 代码