Функции numCurrentValue и numTransferValue возвращают undefined, хотя console.log внуртри функции говорит обратное. Говорит что есть такое значение которые есть в массиве и тип number для переменных currentNumber и transferNumber.
И еще вопрос arr это массив или это объект, не могу разобрать. Если знаете подскажите, плиииз). Не судите строго, я недавно начал изучать js.
Как можно это решить? Желательно простыми какими-то методами.
<select class="currentCurrency"></select>
<select class="transferCurrency"></select>
<label> Введите число: <input class="inputSum"></label>
<button class="btn">Конвертировать<button>
<div class="output"></div>
let curCurrency = document.querySelector('.currentCurrency');
let transCurrency = document.querySelector('.transferCurrency');
let inputSum = document.querySelector('.inputSum');
let btn = document.querySelector('.btn');
let show = document.querySelector('.output');
let arr = {Доллар: 1, Рубль: 62.92, Тенге: 381.19};
let currency = Object.keys(arr);
fillSelect(curCurrency, currency);
fillSelect(transCurrency, currency);
curCurrency.addEventListener('change', numCurrentValue);
function numCurrentValue() {
currentNumber = arr[this.value];
console.log(currentNumber);
console.log(typeof currentNumber);
return currentNumber;
}
transCurrency.addEventListener('change', numTransferValue);
function numTransferValue() {
transferNumber = arr[this.value];
console.log(transferNumber);
console.log(typeof transferNumber);
return transferNumber;
}
btn.addEventListener('click', function () {
show.innerHTML = Number(inputSum.value) / numCurrentValue() * numTransferValue();
});
function fillSelect(select, arr) {
for (let i = 0; i < arr.length; i++) {
select.add(new Option(arr[i]));
}
}
numCurrentValue() * numTransferValue()у тебя this это window, и window.value == undefined – Grundy Jan 28 '20 at 11:41