【问题标题】:Unable to implement reduce() to calculate count in Typescript无法实现 reduce() 来计算 Typescript 中的计数
【发布时间】:2017-09-27 11:09:36
【问题描述】:
people = [
    {name: 'Mary', gender: 'girl'},
    {name: 'Paul', gender: 'boy'},
    {name: 'John', gender: 'boy'},
    {name: 'Lisa', gender: 'girl'},
    {name: 'Bill', gender: 'boy'},
    {name: 'Maklatura', gender: 'girl'}
]

var numBoys = people.reduce(function(n, person) {
    return n + (person.gender == 'boy');
}, 0);

我正在尝试实现与此类似的功能。当我在 JSBin 中做它的工作时。但是当我在打字稿中实现时,它的像 operator + 这样的抛出错误不能应用于 number 和 boolean 。有人可以指出我的实际问题是什么。是因为打字稿吗?我还有其他 reduce() 可以很好地根据属性对对象进行分组。为什么这个单独抛出错误

【问题讨论】:

  • truefalse 上加一个数字是什么意思? Typescript 专门设计用于强制您思考这些内容的含义,并防止意外转换。如果性别是男孩,则应返回 n + 1,否则返回 n
  • @Rob 我尝试像这样实现它 var numBoys = people.reduce(function(n, person) { if(person.gender == 'boy') return n + 1; }, 0) ;但它没有用
  • 因为如果n 不匹配,您就不会返回。
  • @ani 看到我的回答。

标签: typescript reduce


【解决方案1】:

people = [{
    name: 'Mary',
    gender: 'girl'
  },
  {
    name: 'Paul',
    gender: 'boy'
  },
  {
    name: 'John',
    gender: 'boy'
  },
  {
    name: 'Lisa',
    gender: 'girl'
  },
  {
    name: 'Bill',
    gender: 'boy'
  },
  {
    name: 'Maklatura',
    gender: 'girl'
  }
]

var numBoys = people.reduce(function(n, person) {
  return person.gender == 'boy' ? n + 1 : n;
}, 0);

console.log(numBoys)

【讨论】:

    猜你喜欢
    • 2018-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-06
    • 2021-07-17
    • 2013-01-22
    • 2016-08-01
    • 1970-01-01
    相关资源
    最近更新 更多