Как рассчитать процентную разницу в JS?

Я хотел бы рассчитать процентную разницу между двумя значениями.

То, с чем я борюсь, это переменные, я не понимаю, как заставить это работать, я даже не знаю, с чего начать... поэтому я извиняюсь, если что-то не так с моим кодом.

Я хочу, чтобы пользователь мог сравнивать уровни рождаемости и / или смертности между двумя странами. Должен быть первый вариант, когда пользователь выбирает, хочет ли он знать уровень рождаемости или смертности. Затем можно выбрать первую страну для сравнения и третий вариант, когда пользователь выбирает вторую страну. Но я действительно не знаю, как на самом деле это сделать. Пока я получил это:

var choice = {
birth: {
    holland: 11,
    brasil: 17,
    irannie, 19,
    //amount of people who are born every 1000 citizens
},
death: {
    holland: 8,
    brasil: 6,
    irannie: 6,

    //amount of people who die every 1000 citizens, note two values are the same.. so what should the result show? I don't understand


}




  document.getElementById('calculate').addEventListener('click', function () {
    var first= +document.getElementById('onecountry').value;
    var second= +document.getElementById('secondcountry').value;
    // var snelheid = +document.getElementById('vervoer').value;





var percentage = first / second * 100;
var resultaat=Math.round(percentage*10)/10

Другая проблема, с которой я здесь сталкиваюсь, заключается в том, что я не знаю, как отобразить результат на основе первого варианта, поэтому, если пользователь выбрал коэффициент рождаемости, он должен показывать первый коэффициент рождаемости в процентах от второго коэффициента рождаемости, и то же самое для смертности.

document.getElementById('div2').innerHTML = "Het verschil van het geboortecijfer ten opzichte met het andere land is  <b>" + resultaat + "</b>;

Это в HTML:

<select id="choice">
    <option value="birth">Birth rate </option>
    <option value="death">Death rate</option>
</select>


<select id="onecountry">
    <option value="holland">Nederland</option>
    <option value="brasil">Brazillie</option>
</select>
<p></p>Het tweede land dat je wil vergelijken
<select id="secondcountry">
    <option value="holland">Nederland</option>
    <option value="brasil">Brazillie</option>
    <option value="irannie">Iran</option>
</select>

<p></p>
<p></p>Het percentageverschil is
<input id="calculate" type="button" value="Bereken!" />

разница в том...

2 ответа

Хорошо, я думаю, что вижу, что ты пытаешься сделать. Поскольку ваши значения параметров соответствуют ключам, которые вы использовали при рождении и смерти, вы можете передать значения из формы:

var first = choice.birth[document.getElementById('onecountry').value];
var second = choice.death[document.getElementById('secondcountry').value];

Вы хотите быть уверены, что ничего не возвращается неопределенным. Если у вас есть такой объект:

 var myObject = {};

И попробуйте получить доступ к свойству не установлено:

 myObject.name    // returns undefined
 myObject['name'] // returns undefined

это ключ, чтобы проверить, что он действительно существует.

 if (first && second) {
    var percentage = first / second * 100;
    var resultaat=Math.round(percentage*10)/10
 }

Надеюсь, это поможет. Также в вашем коде JavaScript, не используйте html-комментарии, придерживайтесь javascript-комментариев

 <!-- correct use of comment -->
 <p>Hello</p>
 <script type="text/javascript">
   // correct use of a comment here
   alert("hello");
 </script>

Это должно решить это. Я переписал метод расчета и переработал интерфейс. Это на английском языке, поэтому вам нужно будет перевести его.

choice определенный вами объект был сохранен. Это было хорошо. Затем в calculate() Я:

  • Получить статистику, которую хочет пользователь (уровень рождаемости или смертности)
  • Получите первую и вторую страны
  • Получите значения для каждой страны и статистику, открыв choice объект (используя choice[statistic] получает внутреннее birth или же death объект, то дополнительный [firstCountry] или же [secondCountry] получает значение страны)
  • Рассчитать стоимость первой страны в процентах от второй
  • Покажите это.

var choice = {
  birth: {
    holland: 11,
    brasil: 17,
    irannie: 19
  },
  death: {
    holland: 8,
    brasil: 6,
    irannie: 6,
  }
}

function calculate() {
  var statistic = document.getElementById("choice").value;
  var firstCountry = document.getElementById("onecountry").value;
  var secondCountry = document.getElementById("secondcountry").value;
  var firstCountryValue = choice[statistic][firstCountry];
  var secondCountryValue = choice[statistic][secondCountry];
  var percentage = Math.floor((firstCountryValue / secondCountryValue) * 100);
  document.getElementById("result").innerText = "First as a percentage of second: " + percentage;
}
Choose statistic to compare:
<select id="choice">
  <option value="birth">Birth rate</option>
  <option value="death">Death rate</option>
</select>
<br/>Choose first country:
<select id="onecountry">
  <option value="holland">Nederland</option>
  <option value="brasil">Brazillie</option>
</select>
<br/>Choose second country:
<select id="secondcountry">
  <option value="holland">Nederland</option>
  <option value="brasil">Brazillie</option>
  <option value="irannie">Iran</option>
</select>
<br/>

<button onclick="calculate()">Calculate</button>
<span id="result"> 
</span>

Другие вопросы по тегам