Aggiungere senza toccare — Fermata 1 di 5

Hai chiesto all'assistente il cuore di un carrello. La richiesta completa:

Il carrello è un array di righe { codice, prezzo, qta }, prezzi in euro.

  1. aggiungi(carrello, prodotto, qta) restituisce un nuovo carrello: se il codice c'è già ne aumenta la quantità, altrimenti aggiunge una riga. Non modifica il carrello ricevuto. qta deve essere un intero maggiore di zero, altrimenti lancia RangeError.
  2. totale(carrello): somma di prezzo per quantità, arrotondata al centesimo.
  3. applicaCodice(totale, codice): applica lo sconto del codice; maiuscole e spazi ai lati non contano; un codice sconosciuto lascia il totale invariato.

Rivedi una funzione per stop. Si parte da aggiungi: il risultato è giusto, ma guarda cosa succede al carrello di partenza. Correggila senza modificare l'array né le righe ricevute (map, spread ...).