首页 > 解决方案 > 需要通过 Jasmine 测试的 Javascript 中的向量

问题描述

我最近才开始编码,仍在试图弄清楚一切是如何工作的,我的老师给了我这项工作并教我们如何制作构造函数,但对其他东西一无所知。我想知道是否有人可以帮助我完成 Add 函数,以便它通过测试,然后希望我可以从那里自己推断出其他函数,谢谢:)。

这是规格 在此处输入图像描述

这是当前的代码状态

  constructor(pX, pY, pZ) {
    this.setX(pX);
    this.setY(pY);
    this.setZ(pZ);
  }
  getX() {
    return this.mX;
  }
  setX(pX) {
    this.mX = pX;
  }
  getY() {
    return this.mY;
  }
  setY(pY) {
    this.mY = pY;
  }
  getZ() {
    return this.mZ;
  }
  setZ(pZ) {
    this.mZ = pZ;
  }

  add(vec) {
    var mX, mY, pX, pY, x, y;

    mX = this.getX();
    mY = this.getY();
    pX = vec.x;
    pY = vec.y;
    x = mX + pX;
    y = mY + pY;

    return new Vector(x, y);
  }

这是我必须通过的茉莉花测试。

在此处输入图像描述

如果有人能告诉我如何编写 add 函数,希望我可以自己完成剩下的工作。

标签: javascriptvectorjasmine

解决方案


与您的规格完全相同。对于您的 add 方法,这是我写的。

add(pVector) {
    return new Vector(this.getX() + pVector.getX(), this.getY() + pVector.getY(), this.getZ() + pVector.getZ())
}

如果您希望能够手动检查变量,则可以使用变量,但对我来说,为了方便起见,我只是将它们省略了。如果您只需将“vec.x”和“vec.y”更改为“vec.getX()”和“vec.getY()”,您可能就可以使用。虽然我自己对这种语言不太熟悉. 所以只是复制了我当前的工作方法。但是你写 getX() 之后的原因是因为你已经有来自 David 给我们的代码的方法,这些方法获取和设置向量的 X 值。所以你只需调用 Vector vec ,然后您将获得 X 值“getX()”。

可能是一个糟糕的解释,但如果你需要更多,请随时将我添加到光盘上,我也在处理这个 atm SEIORI#5498

您几乎可以对所有方法都遵循此公式,只需根据方法更改运算符即可。


推荐阅读