mirror of https://github.com/01-edu/public.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
lee
9af18a1956
|
4 years ago | |
---|---|---|
.. | ||
README.md | 4 years ago |
README.md
Curry Entries
Instructions
This exercise consists in creating curry functions to apply in the object's entries. You will have to create the following curry functions:
defaultCurry
curries two objects in which the second object overrides the values of the first. If the key is not present then add it with the corresponding value.
defaultCurry({
http: 403,
connection: 'close',
contentType: 'multipart/form-data',
})({ http: 200, connection: 'open', requestMethod: 'GET' })
// output
{
http: 200,
connection: 'open',
contentType: 'multipart/form-data',
requestMethod: 'GET'
}
mapCurry
replicates function.map
, where first entry is a function, second is an object.
mapCurry(([k, v]) => [`${k}_force`, v])(personnel)
// output
{
lukeSkywalker_force: { id: 5, pilotingScore: 98, shootingScore: 56, isForceUser: true },
sabineWren_force: { id: 82, pilotingScore: 73, shootingScore: 99, isForceUser: false },
zebOrellios_force: { id: 22, pilotingScore: 20, shootingScore: 59, isForceUser: false },
ezraBridger_force: { id: 15, pilotingScore: 43, shootingScore: 67, isForceUser: true },
calebDume_force: { id: 11, pilotingScore: 71, shootingScore: 85, isForceUser: true },
}
reduceCurry
replicates function.reduce
, where first entry is function, second is (object, initial value).
reduceCurry((acc, [k, v]) => (acc += v))({ a: 1, b: 2, c: 3 }, 0)
// output
6
filterCurry
replicates function.filter
, where first entry is function, second is object.
filterCurry(([k, v]) => typeof v === 'string' || k === 'arr')({
str: 'string',
nbr: 1,
arr: [1, 2],
})
// output
{ str: 'string', arr: [1, 2] }
Using each curry function create the following functions with one parameter personnel
:
reduceScore
that will return the total value of the scores of the persons who use the forcefilterForce
that will return the force users withshootingScores
equal or higher than 80mapAverage
that will return a new object with the proprietyaverageScore
that is the average of the scores for each person
Notions
- devdocs.io/javascript/global_objects/array/filter
- devdocs.io/javascript/global_objects/array/map
- devdocs.io/javascript/global_objects/array/reduce
- devdocs.io/javascript/global_objects/object/entries
- devdocs.io/javascript/global_objects/object/fromentries
Code provided
all code provided will be added to your solution and doesn't need to be submited.
// prettier-ignore
const personnel = {
lukeSkywalker: { id: 5, pilotingScore: 98, shootingScore: 56, isForceUser: true },
sabineWren: { id: 82, pilotingScore: 73, shootingScore: 99, isForceUser: false },
zebOrellios: { id: 22, pilotingScore: 20, shootingScore: 59, isForceUser: false },
ezraBridger: { id: 15, pilotingScore: 43, shootingScore: 67, isForceUser: true },
calebDume: { id: 11, pilotingScore: 71, shootingScore: 85, isForceUser: true },
}