首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JavaScript/Nodejs中Json数据父项下待定总计数

JavaScript/Nodejs中Json数据父项下待定总计数
EN

Stack Overflow用户
提问于 2018-09-11 00:34:50
回答 1查看 101关注 0票数 0

下面的JSON数据具有EmployeeNumber与待定和数字I将只需要待定计数从JSON和附加到父级

代码语言:javascript
复制
var myJson={
"Name": "Sam",
"EmployeeNumber": "002",
 "IsManager":"True",
 "children": [{
        "Name": "Ravi",
       "EmployeeNumber": "0008",
         "IsManager":"True",
        "children": [{
                "Name": "Krishna",
                "EmployeeNumber": "TBD"
            }, {
                "Name": "diwakar",
                "EmployeeNumber": "007"
            },
            {
                "Name": "Dillep",
                "EmployeeNumber": "009"
            },
            {
                "Name": "David",
                "EmployeeNumber": "009"
            },
            {
                "Name": "Nicholes",
                "EmployeeNumber": "TBD"
            },
            {
                "Name": "Hari",
                "EmployeeNumber": "TBD"
            }
        ]
    },
    {
        "Name": "Rahul",
        "EmployeeNumber": "TBD"
    },
    {
        "Name": "Kiran",
        "EmployeeNumber": "TBD"
    }, {
        "Name": "Kumar",
        "EmployeeNumber": "TBD"
    },
    {
        "Name": "AJAy",
        "EmployeeNumber": "TBD"
    }
]

}

从上面的JSON中,我希望获得待定的总计数,并将计数添加到父名称:Sam=4TBD/0FTE和子待定计数到Ravi =3TBD/3FTE,如果是管理器为真

预期输出:

代码语言:javascript
复制
var myJson={
"Name": "Sam",
"EmployeeNumber": "002",
"IsManager": "Ture",
"Count": "4TBD/0FTE",
"children": [{
        "Name": "Ravi",
        "EmployeeNumber": "TBD",
        "IsManager": "Ture",
        "Count": "3TBD/3FTE",
        "children": [{
                "Name": "Krishna",
                "EmployeeNumber": "TBD"
            }, {
                "Name": "diwakar",
                "EmployeeNumber": "007"
            },
            {
                "Name": "Dillep",
                "EmployeeNumber": "009"
            },
            {
                "Name": "David",
                "EmployeeNumber": "009"
            },
            {
                "Name": "Nicholes",
                "EmployeeNumber": "TBD"
            },
            {
                "Name": "Hari",
                "EmployeeNumber": "TBD"
            }
        ]
    },
    {
        "Name": "Rahul",
        "EmployeeNumber": "TBD"
    },
    {
        "Name": "Kiran",
        "EmployeeNumber": "TBD"
    }, {
        "Name": "Kumar",
        "EmployeeNumber": "TBD"
    },
    {
        "Name": "AJAy",
        "EmployeeNumber": "TBD"
    }
]

}

我试过下面的一个

代码语言:javascript
复制
    var annCtr=[];
    var annFtr=[];
    arr.forEach(function(myJSON) {
    var ctr=[];
    var ftr=[];
     if (myJSON.EmployeeNumber == "TBD") {
        annCtr.push(myJSON.EmployeeNumber);
        ctr.push(myJSON.EmployeeNumber);
       }
    else
    {
    annFtr.push(myJSON.EmployeeNumber);
    ftr.push(myJSON.EmployeeNumber);
    //console.log("FTR :"+myJSON.EmployeeNumber+" Name "+myJSON.Name);
    }
//console.log("Length CTRCT for each loop: "+ctr.length);
//console.log("Length FTE for each loop: "+ftr.length);
})
function children(myJSON) {
  return myJSON.children;
  console.log(d.children);
}
console.log("Total Length FTE for : "+annFtr.length);
console.log("Total Length CTRCT for: "+annCtr.length);
console.log('//////////////////////////////////////////');

提前感谢你的帮助

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-11 01:01:43

希望下面的代码片段能帮到你想要的东西。

代码语言:javascript
复制
var myJson={
"Name": "Sam",
"EmployeeNumber": "002",
 "IsManager":"True",
 "children": [{
        "Name": "Ravi",
       "EmployeeNumber": "0008",
         "IsManager":"True",
        "children": [{
                "Name": "Krishna",
                "EmployeeNumber": "TBD"
            }, {
                "Name": "diwakar",
                "EmployeeNumber": "007"
            },
            {
                "Name": "Dillep",
                "EmployeeNumber": "009"
            },
            {
                "Name": "David",
                "EmployeeNumber": "009"
            },
            {
                "Name": "Nicholes",
                "EmployeeNumber": "TBD"
            },
            {
                "Name": "Hari",
                "EmployeeNumber": "TBD"
            }
        ]
    },
    {
        "Name": "Rahul",
        "EmployeeNumber": "TBD"
    },
    {
        "Name": "Kiran",
        "EmployeeNumber": "TBD"
    }, {
        "Name": "Kumar",
        "EmployeeNumber": "TBD"
    },
    {
        "Name": "AJAy",
        "EmployeeNumber": "TBD"
    }
]
}

function getReporteeCount(employee) {
employee.count = employee.children.reduce( (result,child) => {
if(child.IsManager)
  getReporteeCount(child);
if (child.EmployeeNumber === 'TBD')
result.TBDCount = result.TBDCount + 1;
else 
result.FTECount = result.FTECount + 1;

return result}, {FTECount:0 , TBDCount:0})
}

getReporteeCount(myJson)

console.log(myJson)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52262050

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档