Как рассчитать процентную разницу в 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>