Functional Programming

Node.js 函式處理 (2)

基本介紹

教學目標

透過 Node.js 實作 Map 、 Filter 和 Reduce 函式的應用,找出所有活動票價中小於 1000 元的最高票價。

前置作業

  1. 完成 Node.js 套件安裝與設置。

使用教學

撰寫程式

function.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
var prices = {
"活動 A": 1500,
"活動 B": 1200,
"活動 C": 950,
"活動 D": 600,
"活動 E": 300
};

var tickits = ["活動 A","活動 B","活動 D","活動 E"];

console.log("資料提供");
console.log(tickits);
console.log("=>");

var tickitPrices = tickits.map(function(name) {
return prices[name];
});

console.log("資料對應");
console.log(tickitPrices);
console.log("=>");

var filterTickitPrices = tickitPrices.filter(function(price){
return price < 1000;
});

console.log("資料篩選");
console.log(filterTickitPrices);
console.log("=>");

var maxFilterTickitPrices = filterTickitPrices.reduce(function(a, b){
if (a > b) {
return a;
} else {
return b;
}
});

console.log("資料減化");
console.log(maxFilterTickitPrices);

執行程式

1
$ node function.js

執行結果

1
2
3
4
5
6
7
8
9
10
11
資料提供
[ '活動 A', '活動 C', '活動 D', '活動 E' ]
=>
資料對應
[ 1500, 950, 600, 300 ]
=>
資料篩選
[ 950, 600, 300 ]
=>
資料減化
950

相關資源

Node.js 函式處理 (1)

基本介紹

教學目標

透過 Node.js 實作 Higher Order Function 的應用,提供每秒執行重複事項的函式,總共 N 次。

前置作業

  1. 完成 Node.js 套件安裝與設置。

使用教學

Higher Order Function 簡介

  • Function 當 Function 的傳遞參數。
  • Function 當 Function 的回傳結果。

撰寫程式

function.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function repeat(operation, num) {
if (num <= 0) {
return;
}
operation();
setTimeout(function () {
repeat(operation, --num)
}, 1000)
}

var N = 3;

repeat(function(){
console.log("重複事項")
}, N);

執行程式

1
$ node function.js

執行結果

1
2
3
重複事項
重複事項
重複事項

相關資源