我有一个表单,用户需要输入所有参加的人员:
第一个人
姓名
出生日期
电子邮件
第二个人
姓名
出生日期
电子邮件
我需要计算出每个人的年龄,并确保至少有一个人年满 16 岁才能参加。
我获取所有出生日期选择字段年份并进行计算以返回每个人的年龄。
然后我可以做一个 if 语句 age <= 16
返回参数是否为真。
我的问题就在这里。
我需要检查是否所有人都在 16 岁以下,而不是单个项目。
基本上,如果所有人都在 16 岁以下,则会显示警报,否则如果一个人超过 16 岁,则不执行任何操作。
我不知道我是否可以扩展我必须实现的目标或进行某种类型的数组映射?我已经查看了数组映射,但没有查看我需要执行的附加年龄计算。
非常感谢您的帮助/建议(请使用以下 ES5)。
const checkAllAges = document.querySelectorAll("[data-dob='dobYear']");
function checkAge() {
for (const item of Array.from(checkAllAges)) {
const selectedYearValue = item.value;
const currentYear = new Date().getFullYear();
const age = currentYear - selectedYearValue;
console.log(item)
console.log(age)
if(age <= 16) {
console.log("one of the values is less than 16");
}
if(age > 16) {
console.log("one of the values is greater than 16");
}
}
}
for (const item of Array.from(checkAllAges)) {
item.onchange = function(){
checkAge();
};
}
下面是我的控制台从“item”、“age”返回的内容以及年龄检查是否有帮助:
最佳答案
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/every
或
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some
let isUnder16 = Array.from(ages).every(function(age) {
return age < 16;
});
let isBigger16 = Array.from(ages).some(function(age) {
return age > 16;
});
关于javascript - 检查数组的所有值是否都在特定数字之下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57415854/