Odwrotny group by - Jak nazwać funkcję?

Odpowiedz Nowy wątek
2019-04-15 19:42
0

Mam sobie mapę:

return {
  a: {field: 1},
  b: {field: 2},
  c: {field: 3},
  d: {field: 4},
  e: {field: 5},
};

I chcę ją zamienić na taki array:

return [
  {key: 'a', field: 1},
  {key: 'b', field: 2},
  {key: 'c', field: 3},
  {key: 'd', field: 4},
  {key: 'e', field: 5},
];

Od razu widać że gdyby odwrócić operację to wyszedłby groupBy, ale nie mam pomysłu trochę jak nazwać odwrotną operację :/ Jedyne co mi przychodzi do głowy to mapEntries, ale coś mi nie pasuje. Ma ktoś pomysł na lepszą?


char mander; bool basaur;
Zaawansowana biblioteka T-Regx do wyrażeń regularnych w PHP

Pozostało 580 znaków

2019-04-15 19:45
0

Może flattening?

Pozostało 580 znaków

2019-04-15 19:46
1

Jednemu wierszowi wejściowemu przypisujesz dokładnie jeden wiersz wyjściowy - jest to zatem najzwyklejsze map IMO:

const input = {
  a: {field: 1},
  b: {field: 2},
  c: {field: 3},
  d: {field: 4},
  e: {field: 5},
};

const output = Object.entries(input).map((key, value) => {
  return { key: key[0], field: value };
});

console.log(output);

edytowany 1x, ostatnio: Patryk27, 2019-04-15 19:47

Pozostało 580 znaków

2019-04-15 19:47
3

toArray.

Pozostało 580 znaków

2019-04-15 19:52
0
mad_penguin napisał(a):

Może flattening?

Nie specjalnie pasuje mi flatten - to by było bardziej zmiany arraya 2d na 1d

Patryk27 napisał(a):

Jednemu wierszowi wejściowemu przypisujesz dokładnie jeden wiersz wyjściowy - jest to zatem najzwyklejsze map IMO:

Ja już implementację mam :D Szukam teraz nazwy, bo na razie moja funkcja nazywa się function asd(). Jak Ty byś nazwał swoją?

Michał Sikora napisał(a):

toArray.

Za mało mówiąca dla mnie nazwa. Ja kocham czysty kod, więc nazwa musi być samo opisowa.


char mander; bool basaur;
Zaawansowana biblioteka T-Regx do wyrażeń regularnych w PHP

Pozostało 580 znaków

2019-04-15 19:57
0
TomRiddle napisał(a):

Za mało mówiąca dla mnie nazwa. Ja kocham czysty kod, więc nazwa musi być samo opisowa.

Nie chcę, żeby to wyglądało, że to moja propozycja i dlatego lepsze bo "mojsze", ale toArray jest mówiące wprost i opisowe. Robi dokładnie to. Zamienia mapę na tablicę. mapEntries sugerowałoby jakąś potencjalną lambdę jako argument.

edytowany 1x, ostatnio: Michał Sikora, 2019-04-15 19:58

Pozostało 580 znaków

2019-04-15 19:57
0

Ja już implementację mam

Nie sugerowałem implementacji, tylko dowód na to, że jest to operacja mapowania :-)

Jak Ty byś nazwał swoją?

map(), mapToArray(), toArray() najpewniej - wszystkiego nazwą i tak nie wytłumaczysz.


edytowany 2x, ostatnio: Patryk27, 2019-04-15 19:57

Pozostało 580 znaków

2019-04-15 19:57
0
TomRiddle napisał(a):
Michał Sikora napisał(a):

toArray.

Za mało mówiąca dla mnie nazwa. Ja kocham czysty kod, więc nazwa musi być samo opisowa.

Akurat jeśli mam mapę z Key do Value to przy konwersji na tablicę oczekuję, że elementy będą parami (krotkami) Key i Value, więc się zgadza :]

Edit:
Aczkolwiek nie do końca. Krotka powinna wyglądać tak {key: 'a', value: {field: 1}}, a nie tak {key: 'a', field: 1}.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
edytowany 2x, ostatnio: Wibowit, 2019-04-15 19:59

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0