检查数组的所有值是否都在特定数字以下

Check if ALL values of an array are under a particular number

我有一个表格,用户需要输入所有参加的人:

人 1
姓名
出生日期
电子邮件

第 2 个人
姓名
出生日期
电子邮件

我需要算出每个人的年龄,并确保至少有一个人超过 16 岁才能参加。

我得到所有的出生日期 select 字段年份,并计算 return 每个人的年龄。

然后我可以做一个 if 语句 age <= 16 到 return 如果论证是真的还是假的。

我的问题在这里。

我需要检查 ALL 人是否未满 16 岁,而不是单个项目。

基本上,如果所有未满 16 岁的人都会显示警报,否则如果一个人超过 16 岁,则什么都不做。

我不知道我是否可以扩展我必须实现的目标或进行某种类型的数组映射?我查看了数组映射,但没有查看我需要做的附加年龄计算。

非常感谢您的 help/advice(请使用 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();
       };
   }

以下是我的控制台 return 来自 "item"、"age" 和年龄检查是否有帮助:

这应该有所帮助。用这个示例替换您的代码:

    const checkAllAges = document.querySelectorAll("[data-dob='dobYear']");
    const currentYear = new Date().getFullYear();

    if (Array.from(checkAllAges).every(({ value }) => (value - currentYear) < 16)) {
      console.log('Everyone is under 16');
    }

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;
});