Algoritmo Splitwise em JavaScript-Exemplos de código

Radu TM

Algoritmo Splitwise em JavaScript

JavaScript por Radu TM June 10, 2022

// Algoritmo do Splitwise

// 1. Começamos criando um objeto de pagamento. Este objeto irá acompanhar quem deve a quem o quê.

var payment = {};

// 2. Em seguida, fazemos um loop em cada pessoa do grupo.

for (var i = 0; i < group.length; i++) {
  // 3. Para cada pessoa, fazemos um loop em cada um de seus amigos.
  for (var j = 0; j < group[i].friends.length; j++) {
    // 4. Se o amigo não estiver no objeto de pagamento, nós o criamos e definimos seu saldo como 0.
    if (!payment.hasOwnProperty(group[i].friends[j])) {
      payment[group[i].friends[j]] = 0;
    }
    // 5. Em seguida, calculamos quanto a pessoa deve ao seu amigo. Fazemos isso dividindo o total gasto pelo número de amigos e, em seguida, subtraindo o valor que o amigo já pagou a eles.
    var amountOwed = (group[i].amount / group[i].friends.length) - payment[group[i].friends[j]];
    // 6. Se o valor devido for menor que 0, significa que o amigo já pagou mais que a sua parte, então não precisamos fazer nada. Caso contrário, adicionamos o valor devido ao objeto de pagamento.
    if (amountOwed > 0) {
      payment[group[i].friends[j]] += amountOwed;
    }
  }
}

// 7. Por fim, fazemos um loop no objeto de pagamento e imprimimos quem deve a quem o quê.

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

0

20.222

Consultas relacionadas com JavaScript

Últimas consultas JavaScript

Explorar exemplos de código por categorias