Skip to main content

javascrip 30 天

真是一個夭壽的挑戰

DayTopicProblemStatus
1ClosureCreate Hello World FunctionDONE
2ClosureCounterDONE
3ClosureCounter IIDONE
4Basic Array TransformsApply Transform Over Each Element in ArrayDONE
5Basic Array TransformsFilter Elements from ArrayDONE
6Basic Array TransformsArray Reduce TransformationDONE
7Function input and OutputFunction CompositionDONE
8Function input and OutputAllow One Function CallDONE
9Function input and OutputMemoize
10Function input and OutputCurry
11PromiseSleepDONE
12PromisePromise Time Limit
13PromisePromise Pool
14Time (setTimeout)Cache With Time Limit
15Time (setTimeout)Debounce
16Time (setTimeout)Throttle
17JSON / Recursion / Important UtilitiesJSON Deep Equal
18JSON / Recursion / Important UtilitiesConvert Object to JSON String
19JSON / Recursion / Important UtilitiesArray of Objects to Matrix
20JSON / Recursion / Important UtilitiesDifferences Between Two Objects
21JSON / Recursion / Important UtilitiesChunk Array
22JSON / Recursion / Important UtilitiesFlatten Deeply Nested Array
23ThisArray Prototype LastDONE
24ThisGroup By
25ThisCheck if Object Instance of Class
26ThisCall Function with Custom Context
27ClassesEvent Emitter
28ClassesArray Wrapper
29GeneratorsGenerate Fibonacci Sequence
30GeneratorsNested Array Generator

day-01

https://replit.com/@coreisdontgu/Create-Hello-World-Function#index.js

day-07

因為要反過來抓取 array 中的 function

var compose = function(functions) {
return function(x) {
if(functions.length === 0) return x
let result = x
for(let i = 0; i < functions.length; i++){
result = functions.slice((i+1)*-1)[0](result)
}
return result
}
};

但是也可以用另一種方式,直接透過 for loop 就可以從後面取回來。

return function(x) {
let result = x;
for (let i = functions.length - 1; i >= 0; i--) {
result = functions[i](result);
}
return result;
}