我正在构建一个应根据用户的weight
,height
和country
计算用户的BMI的应用。
因此,在我的letsCalculateBMI
箭头函数中,我需要获取它以从select
元素中获取选定的值,并且在同一letsCalculateBMI
函数内部将该值传递给{{1 }}函数调用,该函数应返回所选值的用户对象。该用户对象应分配给用户变量。
概括地说,此getSelectedUser
函数应实现的目的是确定用户的BMI。它应该通过调用letsCalculateBMI
并将其传递给computeBMI
来实现。然后,它将调用user
的返回值设置为computeBMI
变量,该变量最终被设置为#outcome DIV
bmi
的文本内容。
这里是link
index.js
PARAGRAPH
index.html
const users = [];
const countriesWithLowerBmi = ["Chad", "Sierra Leone", "Mali", "Gambia", "Uganda", "Ghana", "Senegal", "Somalia", "Ivory Coast", "Isreal"];
const featToMeter = 0.3048;
const bmiCountryRatio = 0.82;
const computeBMI = ({weight, height, country}) => {
const heightInMeters = height * featToMeter;
let BMI = weight / (heightInMeters^2);
if (countriesWithLowerBmi.includes(country))
BMI *= bmiCountryRatio;
return Math.round(BMI, 2);
};
const getSelectedUser = (userId) => {
return users.find(({id}) => id === userId);
};
const letsCalculateBMI = () => {
const value = document.querySelector('.select-text').value;
const user =getSelectedUser(target.value);
const bmi = computeBMI(user);
document.querySelector('.bmi-text').innerHTML = bmi
};
const powerupTheUI = () => {
const button = document.querySelector('#oracle');
const select = document.querySelector('.select-text');
select.addEventListener('change', displaySelectedUser);
button.addEventListener('click',letsCalculateBMI);
};
答案 0 :(得分:1)
您提供的代码不是minimal, complete and verifiable example,因此很难在其上构建,但是要点基本上是,对于<input>
,<select>
和其他表单元素,您可以访问它们.value
属性的值。请注意,该值始终是一个字符串,因此对于数字,您必须首先将其转换以免产生错误(例如,在字符串值之前添加+
)。
一旦获得了国家,体重和身高的值,它就是简单的JS端编程。这是一个快速的BMI计算器:
const computeBMI = () => {
let country = document.querySelector('#country').value;
let weight = +document.querySelector('#weight').value;
let height = +document.querySelector('#height').value;
let bmi = weight / (height^2);
document.querySelector('#result').innerHTML = bmi;
}
<p>
Country:
<select id="country">
<option value="usa">USA</option>
<option value="other">Rest of the world</option>
</select>
</p>
<p>
Weight:
<input id="weight" type="number" value="0">
(in kg)
</p>
<p>
Height:
<input id="height" type="number" value="0">
(in m)
</p>
<p>
Your BMI is <span id="result">(not computed yet)</span>
<button onclick="computeBMI()">Compute BMI</button>
</p>
答案 1 :(得分:0)
在letsCalculateBMI函数中,getSelectedUser函数应仅将值作为参数接收(而不是target.value)。