javascript - 为什么带有 some 方法的三元运算符会使该语句为假?

标签 javascript arrays methods conditional-operator

这里有几个问题。这是来自 Wes Bos 的 30 天 JavaScript 类(class)。

  1. 为什么三元运算符(已注释掉)会导致此错误?
  2. 为什么我的解决方案不正确?

挑战

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。我试图理解为什么。

最佳答案

1- 三元运算符前面没有 return,因此该函数默认返回 undefined,这是不希望的。

2- isOlderThan19 没有返回任何内容,您可能在 age >= 19

之前错过了返回词

两个示例都因缺少 return 语句而失败。

关于javascript - 为什么带有 some 方法的三元运算符会使该语句为假?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61901617/

相关文章:

javascript - 输入时调用按钮功能

php - 抓取 Javascript 生成的网站

javascript - D3 从flare.csv 中过滤树状图的根数据

javascript - 创建 JSON 对象的层次结构数组

c++ - 在函数中初始化,未在main中初始化

Swift - 添加一个常量,接受参数并返回值

c++ - 为什么模板类中的函数声明无效?

JavaScript 在布局中找不到元素

ios - swift 3 将 json 数组解析为键值

java - 我无法让我的程序打印出闰年