class Vector { constructor([x, y]) { this.x = x; this.y = y; } get length() { return Math.sqrt(this.x**2 + this.y**2); } mult(s) { return new Vector([ this.x * s, this.y * s, ]); } add(v) { if (!(v instanceof Vector)) { v = new Vector(v); } return new Vector([ this.x + v.x, this.y + v.y, ]); } sub(v) { if (!(v instanceof Vector)) { v = new Vector(v); } return new Vector([ this.x - v.x, this.y - v.y, ]); } rot90() { return new Vector([ -this.y, this.x ]); } get array() { return [this.x, this.y]; } }