- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
作为我的作业的一部分,我的任务是创建一个算术任务运行程序。
直到今天我还从未使用过 NodeJS,甚至从未使用过终端来执行脚本。
过去 5 个小时我一直在研究这个问题,但仍然没有成功。我避免来这里询问,因为我想自己解决这个问题,但是,我已经屈服于迫切需要帮助。
这是我到目前为止的代码:
class ArithmeticTaskRunner {
static set taskCount(counter) {
throw new('This is a readOnly accessor, the value is ${value}');
}
add(y) {
this.y = y || 0
console.log(y)
}
minus(x) {
this.x = Math.abs(this.y) * -1;
console.log(this.x);
};
multiply(z) {
this.z = z * this.x;
console.log(this.z)
}
execute(startValue) {
this.startValue = startValue + this.y
this.y = this.startValue
console.log(this.startValue)
this.startValue = this.minus
console.log(this.startValue)
this.startValue = this.multiply(this.startValue)
console.log(this.startValue)
}
}
tasks = [
function() { minus()},
function() { multiply(z)},
function() { add(x)},
function() { execute(x)}
]
这远非完美,但已接近完成 80%-90%。
这是我被赋予的任务:
You should implement a class called ArithmeticTaskRunner with the following:
- An instance variable named tasks which is initialised to an empty array upon
creation.
- A method named addNegationTask which adds an anonymous function to the
tasks array. This anonymous function should take one argument, x, and return the
negation, -x.
- A method named addAdditionTask which takes a single argument y, and adds
an anonymous function to the tasks array. This anonymous function should take
one argument, x, and return the result x + y.
- A method named addMultiplicationTask which takes a single argument y,
and adds an anonymous function to the tasks array. This anonymous function
should take one argument, x, and return the result x * y.
- A read-only accessor named taskCount which returns the number of queued tasks.
- A method named execute, which takes a single argument named startValue.
If omitted, startValue defaults to zero. Starting at startValue, this method should iterate over the tasks array executing each function on the current value. It then returns the resulting number after all arithmetic operations have been executed.
如果我能得到任何帮助,我将不胜感激。
我遇到的问题如下:执行方法(尝试使 startValue
,在加法之后为负数)、乘法方法以及事实上我无法在不调用加法方法两次的情况下调用加法方法覆盖该值。程序完全运行的示例表明我应该允许多次调用一个方法而不覆盖以前的值。
我知道有一条规则,每一期只有一个问题,我承认这一点。但如果有人能帮助我解决任何问题,我将非常感激,并且我将补偿人们的努力。
谢谢。
编辑 - 这是预期输入/输出的示例
> let taskRunner = new ArithmeticTaskRunner()
undefined
> taskRunner.addAdditionTask(2)
undefined
> taskRunner.addMultiplicationTask(4)
undefined
> taskRunner.addAdditionTask(10)
undefined
> taskRunner.execute(2)
26
> taskRunner.execute(-2)
10
最佳答案
我不想提供完整的答案,因为这是给您的作业,但这里有一些代码可能会帮助您。从 5
开始,然后调用 doubleIt
,然后调用 addOne
到达 11
。
它通过创建一个函数数组来实现这一点,每个函数执行一项简单的任务并返回以某种方式修改其输入的结果。
然后它创建一个名为 execute
的函数,该函数使用 Array.reduce 使用给定的初始值调用数组中的第一个函数,然后根据结果重复调用数组中的每个函数。检查 Array.reduce 的文档如果您对其工作原理感到困惑。
doubleIt = x => x * 2;
addOne = x => x + 1;
tasks = [doubleIt, addOne];
execute = (initial) => tasks.reduce((x,fn) => fn(x), initial)
document.write(execute(5))
class ArithmeticTaskRunner {
constructor() {
this.tasks = [];
}
addAdditionTask(arg) {
this.tasks.push(x => x + arg);
}
addMultiplicationTask(arg) {
this.tasks.push(x => x * arg);
}
execute(startValue) {
return this.tasks.reduce((x, fn) => fn(x), startValue);
}
}
let taskRunner = new ArithmeticTaskRunner()
taskRunner.addAdditionTask(2)
taskRunner.addMultiplicationTask(4)
taskRunner.addAdditionTask(10)
document.write(taskRunner.execute(2));
document.write(', ');
document.write(taskRunner.execute(-2));
关于javascript - 创建算术任务运行器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53197043/
我正在尝试从 1 循环到 12,并为应用中特定 View 的更改网格输出一些跨度宽度。 $span-width: 8.21875%; $gap: 0.125%; @for $i from 1 thro
我试图在 Jekyll 的液体模板引擎中做一些基本的算术。我已经分配了一个变量 numColumns我试图在条件语句中使用它。 {% assign numColumns = 3 %} 注意我在下面的表
与 shift_left ieee.numeric_std 的功能, 我想将信号左移并插入 1或 0从右边。 signal qo: signed (3 downto 0) := (others=>'0
您在控制台中输入一些内容,例如(8+8)。然后程序会告诉你括号的插入是否正确。 这是我对错误括号的定义(当然还没有完成): () this means if one array element is
我有两个表(使用 PostgreSQL),它们看起来如下: 表1(p点从1到450递增1) --------+-------+--------+---------+---------+-------+
我正在编写一个任意精度的有理数包,我需要测试它的正确性和效率。当然,我可以自己组合一组临时测试,但由于我远不是第一个这样做的人,所以我认为值得一问:任何人都可以推荐我可以使用的现有测试集吗? 编辑:我
我最近一直在使用和学习 CSS3,并享受它的许多功能。现在我想知道是否可以设置一个有条件地分配 block 元素宽度的 CSS 规则。我所追求的那种东西 - 如果屏幕宽度小于 500 像素,则使用 3
我对这个实验中h的值有点疑惑。在 cpp 中, int h,J=3,n=200,p=3,h_m=(n+p+1)/2; float rt=(float)h_m/n; for(int j=0,j
算术+和按位或有什么区别吗?这有什么不同。 uint a = 10; uint b = 20; uint arithmeticresult = a + b; uint bitwiseOR = a |
我一直在尝试让算术 if 运算符起作用,但我似乎做不到。我是 C++ 的新手,仍在学习基础知识,但我只是想知道我是否正确使用了这个运算符。如果 x using namespace std; int
我在 VC++2010 中做过一些混合不同大小的操作数导致添加操作溢出的测试: int _tmain(int argc, _TCHAR* argv[]) { __int8 a=127;
#include int main(int argc,char *argv[]) { int i=10; void *k; k=&i; k++; printf("%p\n
在过去的 5 个小时里,我一直在寻找答案。尽管我找到了很多答案,但它们并没有以任何方式提供帮助。 我基本上要寻找的是任何 32 位无符号整数的按位异或运算符的数学、算术唯一表示。 尽管这听起来很简单,
结果是 127 double middle = 255 / 2 虽然这产生了 127.5 Double middle = 255 / 2 同时这也会产生 127.5 double middle = (
我在 Java 1.7 中有以下代码: DateFormat df = DateFormat.getInstance(); Date startDate = df.parse("07/28/12 01
此查询有效,没有错误 select add_months(date '2011-01-31', 1) from dual; ,而这个: select date '2011-01-31' + inter
理论上来说,如果我有一个无序项目列表 Link1 Link1 我如何使用 jQuery 执行以下操作? 1) 找到每个单独a元素的宽度 2) 找到每个单独的 li 元素的宽度 3)
想法如下:假设我有一个列表 P = [(1,0),(4,3)] 或类似的列表。我想以以下方式计算此列表定义的多项式:1X^0 + 4X^3。 为此,我编写了以下内容: evaluate(P,X,Y)
我正在从 mysql 数据库中提取数据。我想添加多次运行的长度,并按照跑得最远的人的排名对它们进行排序。 function determineLength($db, $name){
当尝试执行一个简单的 bash 脚本以将前面带有 0 的数字递增 1 时,原始数字被错误地解释。 #!/bin/bash number=0026 echo $number echo $((number
我是一名优秀的程序员,十分优秀!