Алгоритм 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

20.762

Подібні JavaScript запити

Останні JavaScript запити

Відгуки про код за категоріями