-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathfunctional-demo.js
More file actions
41 lines (29 loc) · 939 Bytes
/
functional-demo.js
File metadata and controls
41 lines (29 loc) · 939 Bytes
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
// 데이터를 앱내에서 처리하고자 할 때 사용
// 3가지 함수의 사용법을 숙지..
// map, filter, reduce
const sampleData = [23, 45, 65, 67, 65, 34, 89];
// 1. filter 작업
const result = [];
for (let i = 0; i < sampleData.length; i++) {
if (sampleData[i] >= 50) {
result.push(sampleData[i]);
}
}
const functionalResult =
sampleData.filter(item => item >= 50);
console.log(result + ' from imperative');
console.log(result + ' from functional');
// 2. map 작업
const newResult = []
for (let i = 0; i < sampleData.length; i++) {
newResult.push(sampleData[i] * 2 - 3);
}
const mapResult = sampleData.map(item => item * 2 - 3);
// 3. reduce 작업
const sum = [12].reduce((a, b) => a * b);
console.log('sum is ' + sum);
const finalResult = sampleData
.filter(item => item >= 50)
.filter(item => item % 2 == 0)
.map(item => item * 2 - 3)
.reduce((a, b) => a + b, 0);