Ik ben een vrij begaafd imperatief (javascript) programmeur. Alleen heb ik de ontwikkelingen sinds ES6 een beetje gemist. Met name de functionaliteit die het nu mogelijk maakt om functioneel te programmeren. Functioneel programmeren is een vaardigheid die ik al langer zou willen ontwikkelen en nu leek het me leuk om dit voor een nieuw javascript project eens zuiver te gaan proberen.
Als eerste probeer ik een string transformatie te doen. Ik vraag me alleen af of ik dit functioneel zuiver genoeg heb gedaan. Oftewel, kunnen jullie een code review doen en mij tips en/of trucs geven? Die code review hoeft zich niet te beperken tot alleen het functionele gedeelte, maar mag zich op alles richten waar jullie denken dat het beter kan.
Dit stukje moet dit JSON object opleven:
Als eerste probeer ik een string transformatie te doen. Ik vraag me alleen af of ik dit functioneel zuiver genoeg heb gedaan. Oftewel, kunnen jullie een code review doen en mij tips en/of trucs geven? Die code review hoeft zich niet te beperken tot alleen het functionele gedeelte, maar mag zich op alles richten waar jullie denken dat het beter kan.
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| const data = "id: 37\nevent: bar\ndata: a\n\nid: 38\nevent: foo\ndata: b\n\n"; const obj = data .split("\n\n") .slice(0, -1) .map(_ => _ .split('\n') .map(_ => [ _.split(':')[0], _.split(':')[1] ]) ) .reduce( (a, b) => ( a.concat( b.reduce((x, y) => { Object.assign(x, { [y[0]]: y[1].trim() }); return x; }, {}) ) ), [] ); console.log(JSON.stringify(obj)); |
Dit stukje moet dit JSON object opleven:
JavaScript:
1
2
3
4
5
6
7
8
9
| [{ "id": "37", "event": "bar", "data": "a" }, { "id": "38", "event": "foo", "data": "b" }] |
Sinds de 2 dagen regel reageer ik hier niet meer