所以我有一个数组

const records = [
    {
        value: 24,
        gender: "BOYS"
    },
    {
        value: 42,
        gender: "BOYS"
    },
    {
        value: 85,
        gender: "GIRLS"
    },
    {
        value: 12,
        gender: "GIRLS"
    },
    {
        value: 10,
        gender: "BOYS"
    }
]

我想得到sum,所以我使用了JavaScript数组reduce函数,并且得到了正确的结果.这是我的代码:

someFunction() {
  return records.reduce(function(sum, record){
    return sum + record.value; 
  }, 0);
}

通过这个代码,我得到了正确的值173.现在我想做的是把所有的总和只加到那些有"BOYS"个性别的物体上.

我试过类似的方法

someFunction() {
  return records.reduce(function(sum, record){
    if(record.gender == 'BOYS') return sum + record.value; 
  }, 0);
}

但我什么也得不到.我错过什么了吗?任何帮助都将不胜感激.

推荐答案

当从reduce函数中不返回任何内容时,它将返回undefined和undefined+1==NaN.你应该在减少之前过滤array.

records.filter(({gender}) => gender === 'BOYS')
    .reduce((sum, record) => sum + record.value)

Vue.js相关问答推荐

V-img不显示文件夹中的图像

为什么我的数组在 onBeforeMount 函数中不为空,但在 onMounted 函数中为空

Vue 3 / Vuetify 3:如何为按钮设置全局默认 colored颜色

如何在Vue js 3中根据API响应替换react 值

如何将 vuejs 项目部署到 heroku

Vue index.html favicon 问题

Vue cli 3项目,图像路径中的动态src不起作用

使用 vue-cli 遇到无法推断解析器错误

Laravel Vue - 如何让 vue 在公共文件夹中查找图像

可以同时使用 Tailwind css 和 Bootstrap 4 吗?

如何在 Vue.js 中触发点击 ref

Polyfill for ie

如何在某些异步数据(在 Vuex 存储中)加载之前防止任何路由?

使用 vue-property-decorator 时注册本地组件

如何将 mapActions 与 vue + Typescript 类组件一起使用?

如何从 vue.js 中的自定义组件中冒泡点击事件?

全局禁用 vuetify 组件的涟漪效应

Axios-一次发出多个请求(vue.js)

Vuejs:我应该在 vue-router SPA 中的哪里放置一些常用的 js 工具?

如何将项目推送到 Vuejs 中数据对象的数组中? Vue 似乎没有关注 .push() 方法