Aby "zmapować" obiekt mapy, należy najpierw go zniszczyć do tablicy tablic. Wydaje mi się, że jest to powrót do tyłu.Dlaczego mapa nie ma metody mapy?
Czy ktoś może mi wyjaśnić, co kryje się pod tym uzasadnieniem projektu? Rozumiem, że inne języki, takie jak Scala, mają metody mapowania w Mapach, więc staram się zrozumieć, dlaczego nie są one dostępne w JavaScript.
składnia Wydaje się więc niepotrzebnie skomplikowane i gadatliwy:
let mappedMap = new Map(
[...originalMap]
.map(([k, v]) => [k * 2, '_' + v])
);
nie to może być coś takiego?
let mappedMap = originalMap.map((k, v) => [k * 2, '_' + v]);
Powinieneś zadać to pytanie w miejscu uczęszczanym przez komisję. Większość osób z zewnątrz nie ma wglądu w swoje decyzje. –
Powinno to być co najmniej 'let mappedMap = new Map (Array.from (originalMap, ([k, v]) => [k * 2, '_' + v]))), aby uniknąć dodatkowej kopii szyk. Jest również trywialne, aby zrobić wersję iterowalną. Zakładam, że odpowiedź brzmi "ponieważ zawsze można ją dodać później i jest trywialna do wdrożenia w oddzielnym module". Plus ogólny "Iterable.map" byłby bardziej użyteczny i również go brakuje. – loganfsmyth
Afaik problem został rozwiązany za pomocą ogólnych metod na iteratorach, a nie na samych Mapach. Iirc, nie było zbyt wiele czasu ani konsensusu, ani żadnej propozycji, jak dokładnie to zrobić w momencie, gdy specyfikacja ES6 została zakończona, więc została pominięta. Łatwo je polyfilować, oczekujemy, że pliki z biblioteki użytkownika będą dostępne. Gdy tylko pojawią się wzorce użycia, zostanie rozważona standaryzacja. Taki sam proces, jak w przypadku metod iteracji 'Array'. – Bergi