【问题标题】:Find out if value is greater or smaller than previous value Javascript找出值是大于还是小于以前的值Javascript
【发布时间】:2011-06-19 19:57:29
【问题描述】:

正如标题所说,我正在努力找出一个值是大于还是小于以前的值 javascript。

假设我正在将变量发送到具有增量或减量的方法。

Ex1:

value(3);

Ex2:

value(2);

Ex3:

value(4);

还有方法……

function value(id){


}

因此,当我从“发件人”获取值时,我想确定该值是大于还是小于我方法中的其他值。第一个值为 3。第二个值为 2——这将导致第一个值大于新输入值 2,依此类推...

有什么想法吗?

谢谢!

【问题讨论】:

    标签: javascript jquery increment


    【解决方案1】:

    您可以在函数周围使用闭包:

    var value = (function() {
      var previousValue = null;
      return function(id) {
        if (previousValue !== null && previousValue > id)
          alert("You sent me something smaller than last time!");
        previousValue = id;
      };
    })();
    

    这样做的好处是只有“value()”函数才能“看到”保存的“previousValue”——其他代码无法更改该值。它本质上就像一个匿名对象的私有属性,由该声明中的函数调用隐式创建。

    【讨论】:

    • 感谢您的快速答复!那么这将是我的新功能吗?电话会是什么样子?还是“value(2)”“value(3)”等?
    • 对不起,我不得不跑到杂货店 :-) 很高兴它有效! (您现在当然知道问题的答案是“是”,您将其称为“值(3)”等等。)
    • 最好不要将 previousValue 设置为null 并将其保留为undefined,这样测试可以只是:if (previousValue > id),因为undefined永远不会大于任何其他值。
    • @RobG 是的,这可能是一个好点。实际上,这取决于更广泛的情况;我们对这里发生的事情知之甚少。
    【解决方案2】:

    在函数外部声明一个变量,并在每次调用函数时用最新的值更新它。

    然后简单地将参数与该变量中的当前值进行比较,以确定它是更大还是更小:

    var current = 0;
    function value(id) {
        //compare id with current
        current = id;
    }
    

    【讨论】:

    • 感谢您的快速答复!这就是我试图做的,但我的“当前”id 与 id 相同,所以我无法比较它们......
    猜你喜欢
    • 2015-11-17
    • 1970-01-01
    • 2017-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多