Algoritmo Splitwise in JavaScript-Esempi di codice

Radu TM

Algoritmo Splitwise in JavaScript

JavaScript di Radu TM June 10, 2022

// Algoritmo di Splitwise

// 1. Iniziamo creando un oggetto "pagamento". Questo oggetto terrà traccia di chi deve a chi quanto.

var payment = {};

// 2. Quindi passiamo in rassegna ogni persona del gruppo.

for (var i = 0; i < group.length; i++) {
  // 3. Per ogni persona, passiamo in rassegna tutti i suoi amici.
  for (var j = 0; j < group[i].friends.length; j++) {
    // 4. Se l'amico non è nell'oggetto pagamento, lo creiamo e impostiamo il suo saldo a 0.
    if (!payment.hasOwnProperty(group[i].friends[j])) {
      payment[group[i].friends[j]] = 0;
    }
    // 5. Quindi calcoliamo quanto la persona deve al suo amico. Facciamo questo prendendo l'importo totale che hanno speso, diviso per il numero di amici, e poi sottraendo l'importo che il loro amico già gli ha pagato.
    var amountOwed = (group[i].amount / group[i].friends.length) - payment[group[i].friends[j]];
    // 6. Se l'importo dovuto è inferiore a 0, significa che l'amico ha già pagato più della sua quota, quindi non dobbiamo fare nulla. In caso contrario, aggiungiamo l'importo dovuto all'oggetto pagamento.
    if (amountOwed > 0) {
      payment[group[i].friends[j]] += amountOwed;
    }
  }
}

// 7. Infine, passiamo in rassegna l'oggetto pagamento e stampiamo chi deve a chi quanto.

for (var key in payment) {
  console.log(key + ' owes ' + payment[key]);
}

0

17.707

Richieste JavaScript simili

Ultime richieste JavaScript

Esplora gli esempi di codice per categorie