【发布时间】: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() 可以很好地根据属性对对象进行分组。为什么这个单独抛出错误
【问题讨论】:
-
在
true或false上加一个数字是什么意思? Typescript 专门设计用于强制您思考这些内容的含义,并防止意外转换。如果性别是男孩,则应返回n + 1,否则返回n。 -
@Rob 我尝试像这样实现它 var numBoys = people.reduce(function(n, person) { if(person.gender == 'boy') return n + 1; }, 0) ;但它没有用
-
因为如果
n不匹配,您就不会返回。 -
@ani 看到我的回答。
标签: typescript reduce