【发布时间】:2020-09-06 03:24:15
【问题描述】:
这里有几个问题。这是来自 Wes Bos 的 30 天 JavaScript 课程。
- 为什么三元运算符(已注释掉)会使其为假?
- 为什么我的解决方案不正确?
挑战
const people = [
{ name: 'Wes', year: 1988 },
{ name: 'Kait', year: 1986 },
{ name: 'Irv', year: 1970 },
{ name: 'Lux', year: 2015 }
];
// Array.prototype.some() // is at least one person 19 or older?
// Array.prototype.every() // is everyone 19 or older?
韦斯的解决方案
const isOlderThan19 = people.some(function(person) {
const currentYear = new Date().getFullYear();
// (currentYear - person.year >= 19) ? true : false
if (currentYear - person.year >= 19) {
return true;
}
});
我的解决方案
const isOlderThan19 = (element) => {
let age = new Date().getFullYear() - element.year;
age >= 19;
}
console.log(people.some(isOlderThan19));
我尝试将设置到控制台的年龄记录下来。除了一个人之外,其他人都超过 19 岁,但它返回 false。我正在尝试了解原因。
【问题讨论】:
-
欢迎堆栈溢出!
标签: javascript arrays methods conditional-operator