它不会进入ELSE-IF

时间:2017-05-18 19:35:22

标签: javascript html if-statement

这是代码:

.onLoad <- function(libname, pkgname) {

}

.registerColors <- function(){
  C.1 <<- c("#FF0000FF", "#80FF00FF", "#00FFFFFF", "#8000FFFF")
  C.2 <<- c("#00AAFFFF", "#0000FFFF", "#AA00FFFF", "#FF00AAFF")
}

.onUnload <- function(libpath){
}
.onAttach <- function(libname, pkgname) {
  .registerColors()
  packageStartupMessage("Welcome to XYZ")
}

.onDetach <- function(libname, pkgname) {
  rm(C.1, C.2, pos = 1)
  packageStartupMessage("Buh-bye")
}

你们知道发生了什么吗?

提前致谢!

3 个答案:

答案 0 :(得分:3)

条件顺序很重要:

function numFormatter(num){
    if (num >= 1000000) {
        num = (num/1000000).toFixed(1) + "m";
    } else if (num >= 1000) {
      num = (num/1000).toFixed(1) + "K";
    }
    return num;
 }

答案 1 :(得分:0)

Else if仅在if没有时触发。您可能希望您的条件顺序相反。

var yolo = 1000000;

  function numFormatter(num){
    if (num >= 1000000) {
      num = (num/1000000).toFixed(1) + "m";
    } else if (num >= 1000 ) {
      num = (num/1000).toFixed(1) + "K";
    }
    return num;
  }

console.log(numFormatter(yolo));

答案 2 :(得分:0)

进入if,因为1000000大于1000,然后停止。 if / else if / else条件只会进入它匹配的第一个块。如果你想让它进入两者,你需要两个单独的if语句,如下所示:

var yolo = 1000000;

  function numFormatter(num){
    if (num >= 1000) {
      num = (num/1000).toFixed(1) + "K";
    } 
    if (num >= 1000000) {
      num = (num/1000000).toFixed(1) + "m";
    }
    return num;
  }

console.log(numFormatter(yolo));

它只会经历匹配的第一个条件。