0062【Edabit ★☆☆☆☆☆】Arrow Functions
closures
higher_order_functions
language_fundamentals
logic
Instructions
In the Code tab you will find code that is missing a single character in order to pass the tests. However, your goal is to submit a function as minimalist as possible. Use the tips in the tips section below.
Write five adder functions:
add2(x)
should return 2 + x.add3(x)
should return 3 + x.add5(x)
should return 5 + x.add7(x)
should return 7 + x.add11(x)
should return 11 + x.
Tips
Functions that consist only of a return can be written as a one-liner with an arrow function.
For example, the code:
javascriptfunction areSame(a, b) { return a == b; }
Can be simplified to:
javascriptareSame = (a, b) => a == b;
Bonus
(a, b) => a == b
is technically an anonymous function. However, it can be assigned to the identifierareSame
and it can then be called usingareSame()
.
Notes
- N/A
Solutions
javascript
function add2(x) {
return x + 2;
}
function add3(x) {
return x + 3;
}
function add5(x) {
return x + 5;
}
function add7(x) {
return x + 7;
}
function add11(x) {
return x + 1;
}
//
add2 = (x) => x + 2;
add3 = (x) => x + 3;
add5 = (x) => x + 5;
add7 = (x) => x + 7;
add11 = (x) => x + 11;
TestCases
javascript
let Test = (function(){
return {
assertEquals:function(actual,expected){
if(actual !== expected){
let errorMsg = `actual is ${actual},${expected} is expected`;
throw new Error(errorMsg);
}
},
assertSimilar:function(actual,expected){
if(actual.length != expected.length){
throw new Error(`length is not equals, ${actual},${expected}`);
}
for(let a of actual){
if(!expected.includes(a)){
throw new Error(`missing ${a}`);
}
}
}
}
})();
Test.assertEquals(add2(1), 3)
Test.assertEquals(add2(9), 11)
Test.assertEquals(add2(435), 437)
Test.assertEquals(add3(1), 4)
Test.assertEquals(add3(9), 12)
Test.assertEquals(add3(435), 438)
Test.assertEquals(add5(1), 6)
Test.assertEquals(add5(9), 14)
Test.assertEquals(add5(435), 440)
Test.assertEquals(add7(1), 8)
Test.assertEquals(add7(9), 16)
Test.assertEquals(add7(435), 442)
Test.assertEquals(add11(1), 12)
Test.assertEquals(add11(9), 20)
Test.assertEquals(add11(435), 446)