FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
Projection/JavaScript/4-imperative.js at master · HowProgrammingWorks/Projection · GitHub
Uh oh!
There was an error while loading.
Please reload this page
.
HowProgrammingWorks
/
Projection
Public
Notifications
You must be signed in to change notification settings
Fork
10
Star
15
Code
Issues
0
Pull requests
0
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Issues
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
Projection
/
JavaScript
/
4-imperative.js
Copy path
More file actions
More file actions
Latest commit
History
History
History
44 lines (36 loc) · 954 Bytes
Breadcrumbs
Projection
/
JavaScript
/
4-imperative.js
Copy path
File metadata and controls
44 lines (36 loc) · 954 Bytes
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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
41
42
43
44
'use strict'
;
// Projection
const
projection
=
(
meta
)
=>
{
const
keys
=
Object
.
keys
(
meta
)
;
return
(
obj
)
=>
{
const
hash
=
{
}
;
keys
.
forEach
(
(
key
)
=>
{
const
def
=
meta
[
key
]
;
const
[
field
,
fn
]
=
def
;
const
val
=
obj
[
field
]
;
hash
[
key
]
=
fn
?
fn
(
val
)
:
val
;
}
)
;
return
hash
;
}
;
}
;
// Dataset
const
persons
=
[
{
name
:
'Marcus Aurelius'
,
city
:
'Rome'
,
born
:
121
}
,
{
name
:
'Victor Glushkov'
,
city
:
'Rostov on Don'
,
born
:
1923
}
,
{
name
:
'Ibn Arabi'
,
city
:
'Murcia'
,
born
:
1165
}
,
{
name
:
'Mao Zedong'
,
city
:
'Shaoshan'
,
born
:
1893
}
,
{
name
:
'Rene Descartes'
,
city
:
'La Haye en Touraine'
,
born
:
1596
}
,
]
;
// Metadata
const
md
=
{
name
:
[
'name'
]
,
place
:
[
'city'
,
(
s
)
=>
`<
${
s
.
toUpperCase
(
)
}
>`
]
,
age
:
[
'born'
,
(
year
)
=>
(
new
Date
(
)
.
getFullYear
(
)
-
new
Date
(
year
.
toString
(
)
)
.
getFullYear
(
)
)
]
}
;
// Usage
const
p1
=
projection
(
md
)
;
const
data
=
persons
.
map
(
p1
)
;
console
.
dir
(
data
)
;
Back
|
FazBrowse Home
|
New Git URL