我正在尝试学习数组方法链,并使用一个基本示例-https://jsbin.com/surizinifi/edit?js,console
const data = [
{
name: 'Butters',
age: 3,
type: 'dog'
},
{
name: 'Lizzy',
age: 6,
type: 'dog'
},
{
name: 'Red',
age: 1,
type: 'cat'
},
{
name: 'Joey',
age: 3,
type: 'dog'
},
];
const ages = data
.filter(animal => animal.type === 'dog')
.map(animal => animal.age * 7)
.reduce((sum, animal) => sum + animal.age)
console.log('ages', ages);
我收到“ NaN”作为伪装返回到数字输出(例如84)的信息。有什么想法我在这里做错了吗?
最佳答案
通过映射,您可以获得数字数组,然后就不需要求和的属性。
一个好主意是为累加器使用一个起始值,并避免在第一个循环中使用数组的两个第一个值。
const data = [
{
name: 'Butters',
age: 3,
type: 'dog'
},
{
name: 'Lizzy',
age: 6,
type: 'dog'
},
{
name: 'Red',
age: 1,
type: 'cat'
},
{
name: 'Joey',
age: 3,
type: 'dog'
},
];
const ages = data
.filter(animal => animal.type === 'dog')
.map(animal => animal.age * 7)
.reduce((sum, age) => sum + age, 0)
console.log('ages', ages);
关于javascript - JavaScript数组方法链接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58164240/