【问题标题】:Redefine a function after it is created in Javascript在 Javascript 中创建函数后重新定义函数
【发布时间】:2013-06-15 06:17:50
【问题描述】:

我正在通过 PHP 循环(循环的原因是因为我想要或多或少的情况)创建一个 switch Javascript 函数,它输出以下内容:

function my_function(array_name) {
    switch (true) {
    case (array_name[1] < x < array_name[2]):
            console.log("between: 1 & 2");
            break;
    case (array_name[2] < x < array_name[3]):
            console.log("between: 2 & 3");
            break;
    default:
            console.log("none");
            break;
    }
}

现在,当加载文档时,我创建一个 Javascript 数组,其中包含我要传递给函数的值。

var array_to_execute = [0,1000,2000,3000];

在创建此数组并传递这些值后,如何调用该函数?比如:

my_function(array_to_execute);

这将导致执行:

    switch (true) {
    case (1000 < x < 2000):
            console.log("between: 1 & 2");
            break;
    case (2000 < x < 3000):
            console.log("between: 2 & 3");
            break;
    default:
            console.log("none");
            break;
    }

【问题讨论】:

  • 顺便说一下,array_name[1] &lt; x &lt; array_name[2] 不会像您期望的那样工作。你必须把它写成array_name[1] &lt; x &amp;&amp; x &lt; array_name[2]
  • 附带说明,switch(true) case(x) case(y) 通常写作if(x) else if(y)...

标签: php javascript arrays loops switch-statement


【解决方案1】:

您想到的函数调用 (my_function(array_to_execute)) 应该没问题!

您可能遇到的问题是因为:

case (array_name[1] < x < array_name[2]):

不像你想象的那样工作。 (它最终将真值与数字进行比较。)改用它,你应该很高兴:

case (array_name[1] < x && x < array_name[2]):

【讨论】:

  • 谢谢,比我想象的要简单:)
猜你喜欢
  • 2016-08-03
  • 2016-08-17
  • 1970-01-01
  • 2016-04-04
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
  • 2016-08-21
  • 1970-01-01
相关资源
最近更新 更多