Algoritmo Splitwise en JavaScript-Ejemplos de código

Radu TM

Algoritmo Splitwise en JavaScript

JavaScript por Radu TM June 10, 2022

// Algoritmo de Splitwise

// 1. Comenzamos creando un objeto de "pago". Este objeto llevará la cuenta de quién le debe a quién qué cantidad.

var payment = {};

// 2. Luego, iteramos a través de cada persona en el grupo.

for (var i = 0; i < group.length; i++) {
  // 3. Para cada persona, iteramos a través de cada uno de sus amigos.
  for (var j = 0; j < group[i].friends.length; j++) {
    // 4. Si el amigo no está en el objeto de pago, lo creamos y establecemos su saldo en 0.
    if (!payment.hasOwnProperty(group[i].friends[j])) {
      payment[group[i].friends[j]] = 0;
    }
    // 5. Luego, calculamos cuánto le debe la persona a su amigo. Hacemos esto tomando el total de lo que gastó, dividido por el número de amigos, y luego restando la cantidad que su amigo ya le pagó.
    var amountOwed = (group[i].amount / group[i].friends.length) - payment[group[i].friends[j]];
    // 6. Si la cantidad adeudada es menor que 0, significa que el amigo ya ha pagado más de su parte, por lo que no necesitamos hacer nada. De lo contrario, agregamos la cantidad adeudada al objeto de pago.
    if (amountOwed > 0) {
      payment[group[i].friends[j]] += amountOwed;
    }
  }
}

// 7. Finalmente, iteramos a través del objeto de pago e imprimimos quién le debe a quién qué cantidad.

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

0

18.911

Consultas relacionadas con JavaScript

Últimas consultas de JavaScript

Explorar ejemplos de código por categorías