Алгоритм Splitwise на JavaScript-Примеры кода

Radu TM

Алгоритм Splitwise на JavaScript

JavaScript от Radu TM June 10, 2022

// Алгоритм Splitwise

// 1. Начинаем с создания объекта "платежа". Этот объект будет отслеживать, кому кому должно какое количество денег.

var payment = {};

// 2. Затем проходим по каждому человеку в группе.

for (var i = 0; i < group.length; i++) {
  // 3. Для каждого человека проходим по каждому из его друзей.
  for (var j = 0; j < group[i].friends.length; j++) {
    // 4. Если друг не присутствует в объекте платежа, мы создаем его и устанавливаем его баланс равным 0.
    if (!payment.hasOwnProperty(group[i].friends[j])) {
      payment[group[i].friends[j]] = 0;
    }
    // 5. Затем рассчитываем, сколько должен человек своему другу. Мы делаем это, взяв общую сумму, потраченную им, деленную на количество друзей, а затем вычитаем сумму, которую его друг уже заплатил ему.
    var amountOwed = (group[i].amount / group[i].friends.length) - payment[group[i].friends[j]];
    // 6. Если сумма, которую нужно заплатить, меньше 0, это означает, что друг уже заплатил больше своей доли, поэтому нам ничего делать не нужно. В противном случае мы добавляем сумму, которую нужно заплатить, в объект платежа.
    if (amountOwed > 0) {
      payment[group[i].friends[j]] += amountOwed;
    }
  }
}

// 7. Наконец, проходим по объекту платежа и выводим на экран, кому кому нужно сколько денег.

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

0

22.477

Похожие JavaScript запросы

Последние JavaScript запросы

Изучите примеры кода по категориям