javascript - 处理 reactjs .reduce 中的空值

标签 javascript arrays reactjs

当我搜索数组时出现“TypeError: Cannot read property 'category' of null”,不是数组中的所有项目都有这个字段,但我的代码应该只查看它是否不为空,不是吗?

checkArray(array) {

    var search = 'Find this';

    var count = array.reduce(function(n, val) {
         return n + (val.outcome_status.category && val.outcome_status.category === search)

    }, 0);

    return count; 
}

最佳答案

您只需要为 val.outcome_status 添加 null 检查,它也可能为 null,在这种情况下会出现异常

为了安全起见,您也可以为 val 添加一个额外的 null 检查

checkArray(array) {

    var search = 'Find this';

    var count = array.reduce(function(n, val) {
         return n + (val && val.outcome_status && val.outcome_status.category && val.outcome_status.category === search)

    }, 0);

    return count; 
}

关于javascript - 处理 reactjs .reduce 中的空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48933286/

相关文章:

java - 将udp数据保存到数组中

javascript - ReactJS: Prop 和状态的最佳实践

reactjs - useLazyQuery 导致太多重新渲染 [Apollo/apollo/react hooks]

css - 在一个元素上 react native 动画多个动画

javascript - getAttribute() 返回空值?

python - 如何在 Cython 中创建固定长度、可变的 Python 对象数组?

javascript - 是否可以修改浏览器的 Date 对象?

javascript - 如何在不删除数组其余部分的情况下从 React 状态数组中删除组件?

javascript - 使用 Google Maps API 将纬度和经度转换为街道地址

javascript - 使用 jQuery 设置具有相同 id 的多个输入的值?