我正在创建一个返回线性序列的任意项的函数。测试用例如下所示:
Test.assertEquals(getFunction([0, 1, 2, 3, 4])(5), 5, "Nope! Try again.");
Test.assertEquals(getFunction([0, 3, 6, 9, 12])(10), 30, "Nope! Try again.");
Test.assertEquals(getFunction([1, 4, 7, 10, 13])(20), 61, "Nope! Try again.");
我不懂函数调用。我编写了这段代码来确定线性序列的函数并计算一个任意项,但我不知道如何将我的函数传递给计算项:
function getFunction(sequence) {
var diff = sequence[1] - sequence[0];
var init = sequence[0];
return diff*arguments[1]+init;
}
arguments [1]不访问参数后传入的术语。如何在第一个示例中访问术语(5)?
Test.assertEquals(getFunction([0, 1, 2, 3, 4])(5), 5, "Nope! Try again.");
答案 0 :(得分:2)
您需要从getFunction()
返回一个函数,以便像测试所期望的那样链接函数调用
这样的事情:
function getFunction(sequence) {
var diff = sequence[1] - sequence[0];
var init = sequence[0];
return function(num) {
return diff*num+init;
}
}