Skip to content

Commit 5f827a4

Browse files
committed
[EX-3.7/st-compl] swap-keys-values
Changing "keys/values" places in literal Map() obj.. reverse/swap. Worth noting: - alternative solutions, especially with "Array.from()". FS-dev: B-4 / JS advanced
1 parent 13f4095 commit 5f827a4

File tree

1 file changed

+27
-0
lines changed
  • full-stack-dev/4-js-advanced/3-set-and-map/3-7-ex-swap-keys-values

1 file changed

+27
-0
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
'use strict';
2+
3+
// Нужно поменять местами ключи/значения в искомом Map() объекте. Возможно разными способами?
4+
5+
const weatherMap = new Map([
6+
['London', 10],
7+
['Moscow', 7],
8+
['Paris', 14],
9+
]);
10+
11+
const reverseWeatherMap = new Map([...weatherMap].map((el) => el.reverse()));
12+
13+
// ?? альтернативное решение (без мутаций массива.. деструктуризация и "просто" перестановка)
14+
// const reverseWeatherMap = new Map(
15+
// [...weatherMap].map(([key, value]) => [value, key])
16+
// );
17+
18+
// ?? альтернативное решение (через Array.from() и его второй аргумент/параметр map() функцию)
19+
// const reverseWeatherMap = new Map(
20+
// Array.from(weatherMap, ([key, value]) => [value, key])
21+
// );
22+
23+
console.log(reverseWeatherMap); // Map(3) { 10 => 'London', 7 => 'Moscow', 14 => 'Paris' }
24+
25+
/*
26+
!! Все решения рабочие. Вариант с reverse() лучше исключить из-за мутаций. Вариант с Array.from является наиболее "зрелым" и оптимизированным технически, так как исключает лишнюю итерацию и создание временного массива.
27+
*/

0 commit comments

Comments
 (0)