javascript - 用 promise react native 嵌套对象循环

标签 javascript reactjs react-native es6-promise

我有一个如下所示的 JSON 对象

var allUsers = {
        "student_a":{
            id:1,
            full_name:"ABC",
            address:"xyz",
            image:"image url"
        },
        "student_b":{
            id:2,
            full_name:"DEF",
            address:"",
            image:"image url"
        },
         "student_c":{
            id:3,
            full_name:"",
            address:"",
            image:""
        }
    }

在上面的 JSON 中,我需要计算出每个学生中有多少个空字段。

我正在使用下面的代码

_submitInfo(allUsers) {
            var empty_fields = Object.entries(allUsers).map(([key, value]) => {
                return this._validateStudent(value)
            })
            alert(JSON.stringify(empty_fields))      
        }

_validateStudent(studentInfo) {   
            empty = 0;
            Object.entries(studentInfo).map(([key, value]) => {
                if (value == "") {
                    empty++
                }
            })
            return empty
        }

但我得到的输出是 [0,0,0] 所需的输出是 [0,1,3]。 我认为 promises 会解决这个问题,但我不知道我将如何在这种嵌套情况下使用它们。

最佳答案

由于您想使用 promises 解决上述问题,我用 promises 更新了您的代码,请看一下。

    var allUsers = {
        "student_a": {
            id: 1,
            full_name: "ABC",
            address: "xyz",
            image: "image url"
        },
        "student_b": {
            id: 2,
            full_name: "DEF",
            address: "",
            image: "image url"
        },
        "student_c": {
            id: 3,
            full_name: "",
            address: "",
            image: ""
        }
    }

check(allUsers);
    function check() {
        const promiseContainer = [];
        Object.entries(allUsers).map(([key, value]) => {
            promiseContainer.push(_validateStudent(value));
        });

        function _validateStudent(studentInfo) {
            let empty = 0;
            return new Promise((resolve, reject) => {
                Object.entries(studentInfo).map(([key, value]) => {
                    if (value == "") {
                        empty++
                    }
                })
                resolve(empty);
            });
        }

        Promise.all(promiseContainer).then((count) => { console.log(count) });
    }

关于javascript - 用 promise react native 嵌套对象循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54141760/

相关文章:

javascript - PCRE 中是否有 "negated alternation"或 "negated string classes"、 la "negated character classes"之类的东西?

javascript - FileUploder 使用 jquery 获取文件完整路径

javascript - 事件处理程序未从 redux 状态访问正确的值

javascript - Redux 存储更新但不在组件中呈现

android - 无法获取 'https://jitpack.io/com/google/android/gms/play-services-basement/maven-metadata.xml'。从服务器 : Forbidden 收到状态代码 403

ios - React Native - Apple Mach-O 链接器错误

javascript - setTimeout函数触发回调两次

javascript - 这个简单的 chrome 扩展有什么问题?

javascript - 所有型号的值相同 -> 收集事件

javascript - React-dev-server 不刷新代码