专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

reduce函数在后端数据结构不确定性情况下的使用

一、问题情况

在实际开发过程中,你获取到的后端数据结构字段可能有,可能没有的情况下,你是否使用过这种场景

obj1 && obj1.obj2 && obj1.obj2 && obj1.obj2.obj3

其实这是一种很常见的处理数据结构不完整性,这样如果数据嵌套层数多了,写的很费劲

二、使用reduce函数写一个工具函数

  • 1、基本的数据
    let obj1 = {
        "result": {
            "report": {
                "contactInfo": {
                    "callsNumber": 0,
                    "contactsNumber": 0,
                    "emergencyContactHasOverdue": "No",
                    "sameLiainson": {
                        "isSame": "Yes",
                        "accounts": "aa"
                    }
                }
            }
        }
    }

  • 2、工具函数
    const objectGetVal = (obj, expr) => {
        if (!Object.is(Object.prototype.toString.call(obj), '[object Object]')) {
            throw new Error(`${obj}不是对象`);
        }
        if (!Object.is(Object.prototype.toString.call(expr), '[object String]')) {
            throw new Error(`${expr}必须是字符串`);
        }
        return expr.split('.').reduce((prev, next) => {
            if (prev) {
                return prev[next]
            } else {
                return undefined;
            }

        }, obj)
    }

  • 3、测试使用
    console.log(objectGetVal(obj1, 'result.report.contactInfo.emergencyContactHasOverdue'));
    console.log(objectGetVal(obj1, 'result.report.emergencyContactHasOverdue'));
    // 输出结果
    // No
    // undefined

未经允许不得转载:搜云库技术团队 » reduce函数在后端数据结构不确定性情况下的使用

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们