此条件函数有什么问题?

时间:2020-09-09 23:22:39

标签: javascript

好的,因此我将遵循DLTP课程,因此我不确定该语法是否在其他地方是闻所未闻的。基本上我想做的是将231像素宽的图像分成3个相等的列,其中一列为红色,绿色,蓝色。我不知道我在做什么错。当我调用函数时,它只会打印两次原始图像。

当我进行此操作(并通过对else / if和for循环的研究进行调整)时,我想到沿x轴在77以下的任何像素都会变为绿色,然后我对每种颜色和每列重复我的操作需要。

任何需要正确输入的帮助都会很棒。我正在尝试理解概念,没有备忘单。

var img = new SimpleImage("chapel.png");
print(img);

function stripeyPic(img){
  for (var pixel of img.values()){

    if(pixel.getX < 77){
        pixel.setGreen(255);
    }
    else if(pixel.getX > 154){
        pixel.setRed(255);
    }
    else if(pixel.getX <= 78 && pixel.getX >=155){
        pixel.setBlue(255);
    }
  }
  print(img);
}

stripeyPic(img);

1 个答案:

答案 0 :(得分:2)

仔细检查这种情况:

(pixel.getX <= 78 && pixel.getX >=155)

这需要一个既小于79又大于154的数字,该数字显然不存在。你的意思是这样:

(pixel.getX >= 78 && pixel.getX <=155)

但是实际上,您根本不需要声明它,因为您可以使用else来表示“与前面两个条件中的任何一个都不匹配”。