From 883b2f211b872ae98b26617d863d50edf8efa8a5 Mon Sep 17 00:00:00 2001 From: Michael Bashurov Date: Sun, 31 May 2020 23:21:38 +0300 Subject: [PATCH 01/11] Fix lesson 13 homework errors --- src/lesson-13/homework/immutability.test.ts | 4 ++-- src/lesson-13/homework/immutability.ts | 14 ++++++++++++-- src/lesson-13/homework/pureFunctions.ts | 18 +++++++++++++++--- 3 files changed, 29 insertions(+), 7 deletions(-) diff --git a/src/lesson-13/homework/immutability.test.ts b/src/lesson-13/homework/immutability.test.ts index 649fc47b..208dffa8 100644 --- a/src/lesson-13/homework/immutability.test.ts +++ b/src/lesson-13/homework/immutability.test.ts @@ -2,7 +2,7 @@ test("dummy test", () => undefined); /* -import { OriginalTeam, ExpectedTeam } from "./immutability"; +import { OriginalTeam, ExpectedTeam, originalTeamToExpectedTeam, originalArrayToExpectedArray, originalTeamToExpectedTeam2 } from "./immutability"; // Задание 1 test("team to team", () => { @@ -48,7 +48,7 @@ test("team to team deep", () => { }, }; - expect(originalTeamToExpectedTeam(originalTeam)).toBe(expectedTeam); + expect(originalTeamToExpectedTeam2(originalTeam)).toBe(expectedTeam); }); */ diff --git a/src/lesson-13/homework/immutability.ts b/src/lesson-13/homework/immutability.ts index 82bde24a..771656b0 100644 --- a/src/lesson-13/homework/immutability.ts +++ b/src/lesson-13/homework/immutability.ts @@ -13,6 +13,8 @@ export type ExpectedTeam = { export const originalTeamToExpectedTeam = ( originalTeam: OriginalTeam + // eslint-disable-next-line + // @ts-ignore ): ExpectedTeam => { // }; @@ -20,7 +22,11 @@ export const originalTeamToExpectedTeam = ( // Задание 2 type SomeArray = Array; -const originalArrayToExpectedArray = (originalArray: SomeArray): SomeArray => { +const originalArrayToExpectedArray = ( + originalArray: SomeArray + // eslint-disable-next-line + // @ts-ignore +): SomeArray => { // }; @@ -34,6 +40,10 @@ export type Team = { }; }; -export const originalTeamToExpectedTeam = (originalTeam: Team): Team => { +export const originalTeamToExpectedTeam2 = ( + originalTeam: Team + // eslint-disable-next-line + // @ts-ignore +): Team => { // }; diff --git a/src/lesson-13/homework/pureFunctions.ts b/src/lesson-13/homework/pureFunctions.ts index f9aed739..477b11be 100644 --- a/src/lesson-13/homework/pureFunctions.ts +++ b/src/lesson-13/homework/pureFunctions.ts @@ -1,19 +1,31 @@ // Задание 1 export type Team = { name: string; score: number }; -export const getTopName = (teams: Team[]): string => { +export const getTopName = ( + teams: Team[] + // eslint-disable-next-line + // @ts-ignore +): string => { // }; // Задание 2 export type QsObj = Record; -export const createQs = (qsObj: QsObj): string => { +export const createQs = ( + qsObj: QsObj + // eslint-disable-next-line + // @ts-ignore +): string => { // }; // Задание 3 -export const parseQs = (qs: string): QsObj => { +export const parseQs = ( + qs: string + // eslint-disable-next-line + // @ts-ignore +): QsObj => { // }; From 80dea3151fa0009c879a2cab2892722e456a9508 Mon Sep 17 00:00:00 2001 From: "d.plushchenkov" Date: Sat, 20 May 2023 19:47:41 +0300 Subject: [PATCH 02/11] =?UTF-8?q?=D1=83=D0=B1=D1=80=D0=B0=D0=BB=20=D0=BA?= =?UTF-8?q?=D0=BE=D0=BC=D0=BC=D0=B5=D0=BD=D1=82=D0=B0=D1=80=D0=B8=D0=B8,?= =?UTF-8?q?=20=D0=BF=D0=BE=D1=84=D0=B8=D0=BA=D1=81=D0=B8=D0=BB=20=D0=BA?= =?UTF-8?q?=D1=80=D0=B0=D1=81=D0=BD=D0=BE=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lesson13/homework/immutability.test.ts | 14 ++++---- src/lesson13/homework/immutability.ts | 38 +++++++++++----------- 2 files changed, 27 insertions(+), 25 deletions(-) diff --git a/src/lesson13/homework/immutability.test.ts b/src/lesson13/homework/immutability.test.ts index 208dffa8..7d83257e 100644 --- a/src/lesson13/homework/immutability.test.ts +++ b/src/lesson13/homework/immutability.test.ts @@ -1,8 +1,12 @@ test("dummy test", () => undefined); -/* - -import { OriginalTeam, ExpectedTeam, originalTeamToExpectedTeam, originalArrayToExpectedArray, originalTeamToExpectedTeam2 } from "./immutability"; +import { + OriginalTeam, + ExpectedTeam, + originalTeamToExpectedTeam, + originalArrayToExpectedArray, + originalTeamToExpectedTeam2, +} from "./immutability"; // Задание 1 test("team to team", () => { @@ -27,7 +31,7 @@ test("array to array", () => { const expectedArray = ["two", 3, 4, 5]; - expect(originalArrayToExpectedArray(originalArray)).toBe(expectedArray); + expect(originalArrayToExpectedArray(originalArray)).toBe(expectedArray); }); // Задание 3 @@ -50,5 +54,3 @@ test("team to team deep", () => { expect(originalTeamToExpectedTeam2(originalTeam)).toBe(expectedTeam); }); - -*/ diff --git a/src/lesson13/homework/immutability.ts b/src/lesson13/homework/immutability.ts index 12f65f20..da96a0bc 100644 --- a/src/lesson13/homework/immutability.ts +++ b/src/lesson13/homework/immutability.ts @@ -1,15 +1,15 @@ // // Задание 1 -// export type OriginalTeam = { -// size: number; -// name: string; -// league: string; -// }; +export type OriginalTeam = { + size: number; + name: string; + league: string; +}; -// export type ExpectedTeam = { -// name: string; -// league: string; -// roster: number; -// }; +export type ExpectedTeam = { + name: string; + league: string; + roster: number; +}; export const originalTeamToExpectedTeam = ( originalTeam: OriginalTeam @@ -20,9 +20,9 @@ export const originalTeamToExpectedTeam = ( }; // // Задание 2 -// type SomeArray = Array; +type SomeArray = Array; -const originalArrayToExpectedArray = ( +export const originalArrayToExpectedArray = ( originalArray: SomeArray // eslint-disable-next-line // @ts-ignore @@ -32,13 +32,13 @@ const originalArrayToExpectedArray = ( // // Задание 3 -// export type Team = { -// name: string; -// captain: { -// name: string; -// age: number; -// }; -// }; +export type Team = { + name: string; + captain: { + name: string; + age: number; + }; +}; export const originalTeamToExpectedTeam2 = ( originalTeam: Team From e9a0ac05ad36471186076ae15463dc6bb282a17b Mon Sep 17 00:00:00 2001 From: "d.plushchenkov" Date: Sat, 20 May 2023 21:12:41 +0300 Subject: [PATCH 03/11] =?UTF-8?q?=D0=B7=D0=B0=D0=B4=D0=B0=D1=87=D0=B8=20?= =?UTF-8?q?=D0=BF=D0=BE=20=D0=B8=D0=BC=D0=BC=D1=83=D1=82=D0=B0=D0=B1=D0=B5?= =?UTF-8?q?=D0=BB=D1=8C=D0=BD=D0=BE=D1=81=D1=82=D1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lesson13/homework/immutability.test.ts | 6 ++-- src/lesson13/homework/immutability.ts | 36 ++++++++++++++++++---- 2 files changed, 33 insertions(+), 9 deletions(-) diff --git a/src/lesson13/homework/immutability.test.ts b/src/lesson13/homework/immutability.test.ts index 7d83257e..a55844dd 100644 --- a/src/lesson13/homework/immutability.test.ts +++ b/src/lesson13/homework/immutability.test.ts @@ -22,7 +22,7 @@ test("team to team", () => { roster: 25, }; - expect(originalTeamToExpectedTeam(originalTeam)).toBe(expectedTeam); + expect(originalTeamToExpectedTeam(originalTeam)).toStrictEqual(expectedTeam); }); // Задание 2 @@ -31,7 +31,7 @@ test("array to array", () => { const expectedArray = ["two", 3, 4, 5]; - expect(originalArrayToExpectedArray(originalArray)).toBe(expectedArray); + expect(originalArrayToExpectedArray(originalArray)).toStrictEqual(expectedArray); }); // Задание 3 @@ -52,5 +52,5 @@ test("team to team deep", () => { }, }; - expect(originalTeamToExpectedTeam2(originalTeam)).toBe(expectedTeam); + expect(originalTeamToExpectedTeam2(originalTeam)).toStrictEqual(expectedTeam); }); diff --git a/src/lesson13/homework/immutability.ts b/src/lesson13/homework/immutability.ts index da96a0bc..e423b0e0 100644 --- a/src/lesson13/homework/immutability.ts +++ b/src/lesson13/homework/immutability.ts @@ -14,9 +14,21 @@ export type ExpectedTeam = { export const originalTeamToExpectedTeam = ( originalTeam: OriginalTeam // eslint-disable-next-line - // @ts-ignore + // @ts-ignore ): ExpectedTeam => { - // + const result: ExpectedTeam = { + name: "New York Badgers", + roster: 25, + league: "", + }; + + for (const key of Object.keys(originalTeam)) { + if (key === "league") { + result.league = originalTeam.league; + } + } + + return result; }; // // Задание 2 @@ -25,9 +37,17 @@ type SomeArray = Array; export const originalArrayToExpectedArray = ( originalArray: SomeArray // eslint-disable-next-line - // @ts-ignore + // @ts-ignore ): SomeArray => { - // + const newLastItem: number | string = originalArray[originalArray.length - 1]; + + const result: SomeArray = originalArray.slice(-2); + + // @ts-ignore + result.push(newLastItem + 1); + result.unshift("two"); + + return result; }; // // Задание 3 @@ -43,7 +63,11 @@ export type Team = { export const originalTeamToExpectedTeam2 = ( originalTeam: Team // eslint-disable-next-line - // @ts-ignore + // @ts-ignore ): Team => { - // + const result: Team = Object.assign({}, originalTeam, {}); + + result.captain.age = 28; + + return result; }; From 980878192d11f5a9a7b9146344f591563880015f Mon Sep 17 00:00:00 2001 From: "d.plushchenkov" Date: Sat, 20 May 2023 23:42:36 +0300 Subject: [PATCH 04/11] =?UTF-8?q?=D0=B7=D0=B0=D0=B4=D0=B0=D1=87=D0=B8=20?= =?UTF-8?q?=D0=BF=D0=BE=20=D1=87=D0=B8=D1=81=D1=82=D1=8B=D0=BC=20=D1=84?= =?UTF-8?q?=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D1=8F=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lesson13/homework/immutability.test.ts | 4 +- src/lesson13/homework/pureFunctions.test.ts | 60 ++++++++++----------- src/lesson13/homework/pureFunctions.ts | 39 ++++++++++++-- 3 files changed, 65 insertions(+), 38 deletions(-) diff --git a/src/lesson13/homework/immutability.test.ts b/src/lesson13/homework/immutability.test.ts index a55844dd..52e58724 100644 --- a/src/lesson13/homework/immutability.test.ts +++ b/src/lesson13/homework/immutability.test.ts @@ -31,7 +31,9 @@ test("array to array", () => { const expectedArray = ["two", 3, 4, 5]; - expect(originalArrayToExpectedArray(originalArray)).toStrictEqual(expectedArray); + expect(originalArrayToExpectedArray(originalArray)).toStrictEqual( + expectedArray + ); }); // Задание 3 diff --git a/src/lesson13/homework/pureFunctions.test.ts b/src/lesson13/homework/pureFunctions.test.ts index 57656b90..fb0ec08f 100644 --- a/src/lesson13/homework/pureFunctions.test.ts +++ b/src/lesson13/homework/pureFunctions.test.ts @@ -1,44 +1,40 @@ test("dummy test", () => undefined); -/* - import { getTopName, Team, QsObj, createQs, parseQs } from "./pureFunctions"; test("it works", () => expect(true).toBe(true)); -// test("getTopName", () => { -// const teams: Team[] = [ -// { name: "Lions", score: 5 }, -// { name: "Tigers", score: 4 }, -// { name: "Bears", score: 6 }, -// { name: "Monkeys", score: 2 }, -// ]; - -// expect(getTopName(teams)).toBe("Bears"); -// }); - -// test("createQs", () => { -// const qsObj: QsObj = { -// page: "2", -// pageSize: "10", -// total: "205", -// somethingElse: "value", -// }; - -// expect(createQs(qsObj)).toBe( -// "?page=2&pageSize=10&total=205&somethingElse=value" -// ); -// }); - -// test("parseQs", () => { -// const qs = "?page=2&pageSize=10&total=205&somethingElse=value"; - - expect(parseQs(qs)).toBe({ +test("getTopName", () => { + const teams: Team[] = [ + { name: "Lions", score: 5 }, + { name: "Tigers", score: 4 }, + { name: "Bears", score: 6 }, + { name: "Monkeys", score: 2 }, + ]; + + expect(getTopName(teams)).toBe("Bears"); +}); + +test("createQs", () => { + const qsObj: QsObj = { page: "2", pageSize: "10", total: "205", somethingElse: "value", - }); + }; + + expect(createQs(qsObj)).toBe( + "?page=2&pageSize=10&total=205&somethingElse=value" + ); }); -*/ +test("parseQs", () => { + const qs = "?page=2&pageSize=10&total=205&somethingElse=value"; + + expect(parseQs(qs)).toStrictEqual({ + page: "2", + pageSize: "10", + total: "205", + somethingElse: "value", + }); +}); diff --git a/src/lesson13/homework/pureFunctions.ts b/src/lesson13/homework/pureFunctions.ts index 2ca822fc..13563836 100644 --- a/src/lesson13/homework/pureFunctions.ts +++ b/src/lesson13/homework/pureFunctions.ts @@ -1,23 +1,40 @@ // // Задание 1 -// export type Team = { name: string; score: number }; +export type Team = { name: string; score: number }; export const getTopName = ( teams: Team[] // eslint-disable-next-line // @ts-ignore ): string => { - // + const maxTeam: Team = teams.reduce( + (maxTeam: Team, item: Team) => { + if (item.score > maxTeam.score) { + return item; + } else { + return maxTeam; + } + }, + { name: "", score: 0 } + ); + + return maxTeam.name; }; // // Задание 2 -// export type QsObj = Record; +export type QsObj = Record; export const createQs = ( qsObj: QsObj // eslint-disable-next-line // @ts-ignore ): string => { - // + const params: Array = []; + + for (const [key, value] of Object.entries(qsObj)) { + params.push(`${key}=${value}`); + } + + return "?" + params.join("&"); }; // // Задание 3 @@ -27,5 +44,17 @@ export const parseQs = ( // eslint-disable-next-line // @ts-ignore ): QsObj => { - // + qs = qs.replace("?", ""); + + const parser = (str: string, delimeter: string) => + String(str).split(delimeter); + + const result = parser(qs, "&").reduce((result: {}, item) => { + const value = parser(item, "="); + // @ts-ignore + result[value[0]] = value[1]; + return result; + }, {}); + + return result; }; From 30d89baf51e8fd7cf5568d8d81a7e280fb9f60cf Mon Sep 17 00:00:00 2001 From: "d.plushchenkov" Date: Sun, 21 May 2023 17:14:15 +0300 Subject: [PATCH 05/11] =?UTF-8?q?=D0=B7=D0=B0=D0=B4=D0=B0=D1=87=D0=B8=20?= =?UTF-8?q?=D0=BF=D0=BE=20ramda?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../homework/ramdaPureFunctions.test.ts | 42 +++++++------ src/lesson13/homework/ramdaPureFunctions.ts | 63 ++++++++++++++++--- 2 files changed, 78 insertions(+), 27 deletions(-) diff --git a/src/lesson13/homework/ramdaPureFunctions.test.ts b/src/lesson13/homework/ramdaPureFunctions.test.ts index 9929b3bf..c421f7d0 100644 --- a/src/lesson13/homework/ramdaPureFunctions.test.ts +++ b/src/lesson13/homework/ramdaPureFunctions.test.ts @@ -1,5 +1,4 @@ test("dummy test", () => undefined); -/* import { getTopName, @@ -9,30 +8,37 @@ import { parseQs, } from "./ramdaPureFunctions"; -// }); +test("getTopName", () => { + const teams: Team[] = [ + { name: "Lions", score: 5 }, + { name: "Tigers", score: 4 }, + { name: "Bears", score: 6 }, + { name: "Monkeys", score: 2 }, + ]; -// test("createQs", () => { -// const qsObj: QsObj = { -// page: "2", -// pageSize: "10", -// total: "205", -// somethingElse: "value", -// }; + expect(getTopName(teams)).toBe("Bears"); +}); + +test("createQs", () => { + const qsObj: QsObj = { + page: "2", + pageSize: "10", + total: "205", + somethingElse: "value", + }; -// expect(createQs(qsObj)).toBe( -// "?page=2&pageSize=10&total=205&somethingElse=value" -// ); -// }); + expect(createQs(qsObj)).toBe( + "?page=2&pageSize=10&total=205&somethingElse=value" + ); +}); -// test("parseQs", () => { -// const qs = "?page=2&pageSize=10&total=205&somethingElse=value"; +test("parseQs", () => { + const qs = "?page=2&pageSize=10&total=205&somethingElse=value"; - expect(parseQs(qs)).toBe({ + expect(parseQs(qs)).toStrictEqual({ page: "2", pageSize: "10", total: "205", somethingElse: "value", }); }); - -*/ diff --git a/src/lesson13/homework/ramdaPureFunctions.ts b/src/lesson13/homework/ramdaPureFunctions.ts index b4b484f8..c5545228 100644 --- a/src/lesson13/homework/ramdaPureFunctions.ts +++ b/src/lesson13/homework/ramdaPureFunctions.ts @@ -1,23 +1,68 @@ -// import { -// compose, -// //... -// } from "ramda"; +import { + compose, + curry, + map, + reduce, + join, + toPairs, + concat, + replace, + split, +} from "ramda"; // // Задание 1 -// export type Team = { name: string; score: number }; +export type Team = { name: string; score: number }; + +const getTeamByMaxScore = (maxTeam: Team, item: Team): Team => { + if (item.score > maxTeam.score) { + return item; + } else { + return maxTeam; + } +}; + +const trace = curry((tag, x) => { + console.log(tag, x); + return x; +}); + +const getTeamName = (item: Team): string => item.name; // eslint-disable-next-line // @ts-ignore -export const getTopName = compose(/* ... */); +export const getTopName = compose( + getTeamName, + reduce(getTeamByMaxScore, { name: "", score: 0 }) +); // // Задание 2 -// export type QsObj = Record; +export type QsObj = Record; // eslint-disable-next-line // @ts-ignore -export const createQs = compose(/* ... */); +export const createQs = compose( + concat("?"), + join("&"), + map(join("=")), + toPairs +); // eslint-disable-next-line // @ts-ignore // Задание 3 -export const parseQs = compose(/* ... */); + +const show = x => x; + +const reduceIterator = (acc: object, elem: object) => { + // @ts-ignore + acc[elem[0]] = elem[1]; + return acc; +}; + +export const parseQs = compose( + show, + reduce(reduceIterator, {}), + map(split("=")), + split("&"), + replace("?", "") +); From b174cf76e89b18e359b54e0b960ca80bf073712e Mon Sep 17 00:00:00 2001 From: "d.plushchenkov" Date: Sun, 21 May 2023 17:19:30 +0300 Subject: [PATCH 06/11] =?UTF-8?q?=D0=BF=D0=BE=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D0=BB=20=D1=82=D0=B8=D0=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lesson13/homework/ramdaPureFunctions.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lesson13/homework/ramdaPureFunctions.ts b/src/lesson13/homework/ramdaPureFunctions.ts index c5545228..82cfe72b 100644 --- a/src/lesson13/homework/ramdaPureFunctions.ts +++ b/src/lesson13/homework/ramdaPureFunctions.ts @@ -51,9 +51,9 @@ export const createQs = compose( // @ts-ignore // Задание 3 -const show = x => x; +const show = (x) => x; -const reduceIterator = (acc: object, elem: object) => { +const reduceIterator = (acc: object, elem: Array) => { // @ts-ignore acc[elem[0]] = elem[1]; return acc; From 97a4d39ca23e6b44aa043bc13c4a156238798ec9 Mon Sep 17 00:00:00 2001 From: "d.plushchenkov" Date: Sun, 21 May 2023 17:41:13 +0300 Subject: [PATCH 07/11] =?UTF-8?q?=D0=BF=D0=BE=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D0=BB=20=D0=BA=D1=80=D0=B0=D1=81=D0=BD=D0=BE=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lesson13/homework/immutability.ts | 1 + src/lesson13/homework/ramdaPureFunctions.ts | 10 ++++------ 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/lesson13/homework/immutability.ts b/src/lesson13/homework/immutability.ts index e423b0e0..4bd6e8db 100644 --- a/src/lesson13/homework/immutability.ts +++ b/src/lesson13/homework/immutability.ts @@ -43,6 +43,7 @@ export const originalArrayToExpectedArray = ( const result: SomeArray = originalArray.slice(-2); + // eslint-disable-next-line @typescript-eslint/ban-ts-ignore // @ts-ignore result.push(newLastItem + 1); result.unshift("two"); diff --git a/src/lesson13/homework/ramdaPureFunctions.ts b/src/lesson13/homework/ramdaPureFunctions.ts index 82cfe72b..a0004342 100644 --- a/src/lesson13/homework/ramdaPureFunctions.ts +++ b/src/lesson13/homework/ramdaPureFunctions.ts @@ -1,6 +1,5 @@ import { compose, - curry, map, reduce, join, @@ -21,11 +20,6 @@ const getTeamByMaxScore = (maxTeam: Team, item: Team): Team => { } }; -const trace = curry((tag, x) => { - console.log(tag, x); - return x; -}); - const getTeamName = (item: Team): string => item.name; // eslint-disable-next-line @@ -39,11 +33,14 @@ export const getTopName = compose( export type QsObj = Record; // eslint-disable-next-line +// eslint-disable-next-line @typescript-eslint/ban-ts-ignore // @ts-ignore export const createQs = compose( concat("?"), join("&"), map(join("=")), + // eslint-disable-next-line @typescript-eslint/ban-ts-ignore + // @ts-ignore toPairs ); @@ -54,6 +51,7 @@ export const createQs = compose( const show = (x) => x; const reduceIterator = (acc: object, elem: Array) => { + // eslint-disable-next-line @typescript-eslint/ban-ts-ignore // @ts-ignore acc[elem[0]] = elem[1]; return acc; From 96dcc2ee037bb0a4175827d1d78480e528a35c86 Mon Sep 17 00:00:00 2001 From: "d.plushchenkov" Date: Tue, 30 May 2023 21:07:55 +0300 Subject: [PATCH 08/11] update getTopName --- src/lesson13/homework/pureFunctions.ts | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/src/lesson13/homework/pureFunctions.ts b/src/lesson13/homework/pureFunctions.ts index 13563836..9d19297f 100644 --- a/src/lesson13/homework/pureFunctions.ts +++ b/src/lesson13/homework/pureFunctions.ts @@ -6,15 +6,8 @@ export const getTopName = ( // eslint-disable-next-line // @ts-ignore ): string => { - const maxTeam: Team = teams.reduce( - (maxTeam: Team, item: Team) => { - if (item.score > maxTeam.score) { - return item; - } else { - return maxTeam; - } - }, - { name: "", score: 0 } + const maxTeam: Team = teams.reduce((maxTeam: Team, item: Team) => + item.score > maxTeam.score ? item : maxTeam ); return maxTeam.name; From fd0f90cbc6eb9fde9c948982c6e5379d161e2faf Mon Sep 17 00:00:00 2001 From: "d.plushchenkov" Date: Tue, 30 May 2023 21:10:21 +0300 Subject: [PATCH 09/11] =?UTF-8?q?=D1=83=D0=B1=D1=80=D0=B0=D0=BB=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B5=D0=BE=D0=B1=D1=80=D0=B0=D0=B7=D0=BE=D0=B2=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=B2=20=D0=BE=D0=B1=D1=8A=D0=B5=D0=BA?= =?UTF-8?q?=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lesson13/homework/pureFunctions.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/lesson13/homework/pureFunctions.ts b/src/lesson13/homework/pureFunctions.ts index 9d19297f..632e5593 100644 --- a/src/lesson13/homework/pureFunctions.ts +++ b/src/lesson13/homework/pureFunctions.ts @@ -39,8 +39,7 @@ export const parseQs = ( ): QsObj => { qs = qs.replace("?", ""); - const parser = (str: string, delimeter: string) => - String(str).split(delimeter); + const parser = (str: string, delimeter: string) => str.split(delimeter); const result = parser(qs, "&").reduce((result: {}, item) => { const value = parser(item, "="); From 3a7fe56ff6deea3ffe8f9e8e9ee45aa5b2fe08d0 Mon Sep 17 00:00:00 2001 From: "d.plushchenkov" Date: Tue, 30 May 2023 21:15:23 +0300 Subject: [PATCH 10/11] =?UTF-8?q?=D0=BF=D0=B5=D1=80=D0=B5=D0=B2=D0=B5?= =?UTF-8?q?=D0=BB=20=D0=BD=D0=B0=20=D0=BF=D1=80=D1=8F=D0=BC=D0=BE=D0=B5=20?= =?UTF-8?q?=D0=BF=D1=80=D0=B8=D1=81=D0=B2=D0=B0=D0=B8=D0=B2=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lesson13/homework/immutability.ts | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/lesson13/homework/immutability.ts b/src/lesson13/homework/immutability.ts index 4bd6e8db..2650238d 100644 --- a/src/lesson13/homework/immutability.ts +++ b/src/lesson13/homework/immutability.ts @@ -19,15 +19,9 @@ export const originalTeamToExpectedTeam = ( const result: ExpectedTeam = { name: "New York Badgers", roster: 25, - league: "", + league: originalTeam.league, }; - for (const key of Object.keys(originalTeam)) { - if (key === "league") { - result.league = originalTeam.league; - } - } - return result; }; From 98fd6617cdd4785659a6c91bad86968e37283128 Mon Sep 17 00:00:00 2001 From: "d.plushchenkov" Date: Tue, 30 May 2023 21:27:26 +0300 Subject: [PATCH 11/11] =?UTF-8?q?=D1=81=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB=20?= =?UTF-8?q?=D1=87=D0=B5=D1=80=D0=B5=D0=B7=20json?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lesson13/homework/immutability.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lesson13/homework/immutability.ts b/src/lesson13/homework/immutability.ts index 2650238d..d6f99afa 100644 --- a/src/lesson13/homework/immutability.ts +++ b/src/lesson13/homework/immutability.ts @@ -60,7 +60,7 @@ export const originalTeamToExpectedTeam2 = ( // eslint-disable-next-line // @ts-ignore ): Team => { - const result: Team = Object.assign({}, originalTeam, {}); + const result: Team = JSON.parse(JSON.stringify(originalTeam)); result.captain.age = 28;