Javascript 从对象数组中获取属性的值。儿童物品

Javascript 从对象数组中获取属性的值。儿童物品,javascript,arrays,object,iteration,Javascript,Arrays,Object,Iteration,我试图从这里得到: var example=[ { "value": 4, "label": "Bangalore", "path": "fa fa-tachometer", "parentmenu": null, "layout": null, "children": [ { "value": 5, "l

我试图从这里得到:

var example=[
    {
        "value": 4,
        "label": "Bangalore",
        "path": "fa fa-tachometer",
        "parentmenu": null,
        "layout": null,
        "children": [
            {
                "value": 5,
                "label": "HSR Layout",
                "path": "fa fa-tachometer",
                "parentmenu": 4,
                "layout": null,
                "children": [
                    {
                        "value": 6,
                        "label": "Building1",
                        "path": "fa fa-tachometer",
                        "parentmenu": 5,
                        "layout": null,
                        "children": [
                            {
                                "value": 7,
                                "label": "Floor1",
                                "path": "fa fa-tachometer",
                                "parentmenu": 6,
                                "layout": null,
                                "children": [
                                    {
                                        "value": 8,
                                        "label": "Telemon_12765213",
                                        "path": "fa fa-tachometer",
                                        "parentmenu": 7,
                                        "layout": null,
                                        "children": [
                                            {
                                                "value": 9,
                                                "label": "Battery",
                                                "path": "fa fa-tachometer",
                                                "parentmenu": 8,
                                                "layout": null,
                                                "children": []
                                            },
                                            {
                                                "value": 10,
                                                "label": "MSensor",
                                                "path": "fa fa-tachometer",
                                                "parentmenu": 8,
                                                "layout": null,
                                                "children": []
                                            }
                                        ]
                                    },
                                    {
                                        "value": 11,
                                        "label": "Telemon_12765245",
                                        "path": "fa fa-tachometer",
                                        "parentmenu": 7,
                                        "layout": null,
                                        "children": [
                                            {
                                                "value": 12,
                                                "label": "Battery",
                                                "path": "fa fa-tachometer",
                                                "parentmenu": 11,
                                                "layout": null,
                                                "children": []
                                            },
                                            {
                                                "value": 13,
                                                "label": "MSensor",
                                                "path": "fa fa-tachometer",
                                                "parentmenu": 11,
                                                "layout": null,
                                                "children": []
                                            }
                                        ]
                                    }
                                ]
                            },
                            {
                                "value": 14,
                                "label": "Floor2",
                                "path": "fa fa-tachometer",
                                "parentmenu": 6,
                                "layout": null,
                                "children": [
                                    {
                                        "value": 15,
                                        "label": "Telemon_12765248",
                                        "path": "fa fa-tachometer",
                                        "parentmenu": 14,
                                        "layout": null,
                                        "children": [
                                            {
                                                "value": 16,
                                                "label": "Battery",
                                                "path": "fa fa-tachometer",
                                                "parentmenu": 15,
                                                "layout": null,
                                                "children": []
                                            },
                                            {
                                                "value": 17,
                                                "label": "MSensor",
                                                "path": "fa fa-tachometer",
                                                "parentmenu": 15,
                                                "layout": null,
                                                "children": []
                                            }
                                        ]
                                    }
                                ]
                            }
                        ]
                    },
                    {
                        "value": 18,
                        "label": "Building2",
                        "path": "fa fa-tachometer",
                        "parentmenu": 5,
                        "layout": null,
                        "children": [
                            {
                                "value": 19,
                                "label": "Floor1",
                                "path": "fa fa-tachometer",
                                "parentmenu": 18,
                                "layout": null,
                                "children": [
                                    {
                                        "value": 20,
                                        "label": "Telemon_12765254",
                                        "path": "fa fa-tachometer",
                                        "parentmenu": 19,
                                        "layout": null,
                                        "children": [
                                            {
                                                "value": 21,
                                                "label": "Battery",
                                                "path": "fa fa-tachometer",
                                                "parentmenu": 20,
                                                "layout": null,
                                                "children": []
                                            },
                                            {
                                                "value": 22,
                                                "label": "MSensor",
                                                "path": "fa fa-tachometer",
                                                "parentmenu": 20,
                                                "layout": null,
                                                "children": []
                                            }
                                        ]
                                    }
                                ]
                            }
                        ]
                    }
                ]
            }
        ]
    }
];
到这里:

var a=[4, 5, 6, 7, 8, 11, 14, 15, 18, 19, 20];
显然,我可以循环它并构建数组,但我可以从父对象获取键,但我需要所有对象的值。家长和孩子。

尝试。匹配
名称键,然后将受尊重的
推送到数组中

var示例=[{“值”:4,“标签”:“班加罗尔”,“路径”:“fa-fa转速表”,“父菜单”:null,“布局”:null,“子菜单”:[{“值”:5,“标签”:“HSR布局”,“路径”:“fa-fa转速表”,“父菜单”:4,“布局”:null,“子菜单”:[{“值”:6,“标签”:“构建1”,“路径”:“fa-fa转速表”,“父菜单”:5,“布局”:null,“子项”:[{“值”:7,“标签”:“地板1”,“路径”:“fa转速计”,“父菜单”:6,“布局”:空,“子项”:[{“值”:8,“标签”:“Telemon_12765213”,“路径”:“fa转速计”,“父菜单”:7,“布局”:空,“子项”:[{“值”:9,“标签”:“电池”,“路径”:“fa转速计”,“父菜单”:8,“布局”:空,“子项”:,{“值”:10,“标签”:“传感器”,“路径”:“fa-fa转速计”,“父菜单”:8,“布局”:null,“子菜单”:[]}}},{“值”:11,“标签”:“Telemon_12765245”,“路径”:“fa-fa转速计”,“父菜单”:7,“布局”:null,“子菜单”:[{“值”:12,“标签”:“电池”,“路径”:“fa转速计”,“父菜单”:11,“布局”:null,“子菜单”:[]},{“值”:13,“标签”:“传感器”,“路径”:“fa-fa转速表”,“父菜单”:11,“布局”:空,“子菜单”:[]}]}],{“值”:14,“标签”:“地板”,“路径”:“fa-fa转速表”,“父菜单”:6,“布局”:空,“子菜单”:[{“值”:15,“标签”:“Telemon_12765248”,“路径”:“fa-fa转速表”,“父菜单”:14,“布局”:空,“子菜单”:[{“值”:16,“标签”:“电池”,“路径”:“fa-fa转速表”,“父菜单”:15,“布局”:空,“子菜单”:[]},{“值”:17,“标签”:“传感器”,“路径”:“fa-fa转速表”,“父菜单”:15,“布局”:空,“子菜单”:[]}]}]},{“值”:18,“标签”:“建筑2”,“路径”:“fa转速表”,“父菜单”:5,“布局”:空,“子菜单”“:[{”value“:19,“label“:”Floor1“,”path“:”fa-fa转速表“,”parentmenu“:”18,“layout“:”null“,”children“:”[{”value“:20,“labour“,”标签“:”fa-fa转速表“,”parentmenu“:”子菜单“:”子菜单“,”20,“layout“:”null“,”子菜单“,”{“值”:22,“标签”:“传感器”,“路径”:“fa转速计”,“父菜单”:20,“布局”:null,“子项”:[]}]}]}]}]}];
var res=[]
parse(JSON.stringify(示例)、函数(键、值){
如果(键=='value')
res.push(值)
})

console.log(res)
您可以使用递归函数像这样到达每个节点

var arr = [];
function getValues(example){
    example.forEach(function(obj){
        //check if object has children i.e. it is a parent
        if(obj.children.length){
            arr.push(obj.value);
            getValues(obj.children);
        }
    });
}

getValues(example);
console.log(arr);

您可以使用迭代和递归方法,并检查子项是否有长度

var数据=[{value:4,标签:“班加罗尔”,路径:“fa-fa转速表”,父菜单:空,布局:空,子菜单:[{value:5,标签:“HSR布局”,路径:“fa-fa转速表”,父菜单:4,布局:空,子菜单:[{value:6,标签:“Building1”,路径:“fa-fa转速表”,父菜单:5,布局:空,子菜单:[{value:7,标签:1,路径:“fa-fa转速表”,父菜单:6,布局:空,子菜单:[{value:8,标签:“Telemon12765213”,路径:“fa-fa转速表”,父菜单:7,布局:空,子菜单:[{value:9,标签:“电池”,路径:“fa-fa转速表”,父菜单:8,布局:空,子菜单:[},{value:10,标签:“MSensor”,路径:“fa-fa转速表”,父菜单:8,布局:空,子项:[]},{value:11,标签:“Telemon_12765245”,路径:“fa-fa转速表”,父菜单:7,布局:空,子项:[{value:12,标签:“电池”,路径:“fa-fa转速表”,父菜单:11,布局:空,子项:[]},{value:13,标签:“MSensor”,路径:“fa-fa转速表”,父菜单:11,布局:null,子菜单:14,布局:null,子菜单:6,布局:null,子菜单:6,布局:null,子菜单:[{值:15,标签:Telemon_12765248,路径:“fa fa转速表”,父菜单:14,布局:null,子菜单:[{值:16,标签:“电池”,路径:“fa转速表”,父菜单:15,布局:空,子菜单:5,布局:空,子菜单:5,布局:空,子菜单:15,布局:空,子菜单:18,标签:Building2,路径:fa-fa-tachometer,子菜单:5,布局:空,子菜单:[{值:19,标签:Floor1,路径:fa-tachometer”,父菜单:18,布局:空,子菜单:[{值:20,标签:“Telemon_12765254”,路径:“fa转速计”,父菜单:19,布局:空,子菜单:[{值:21,标签:“电池”,路径:“fa转速计”,父菜单:20,布局:空,子菜单:[]},{值:22,标签:“MSensor”,路径:“fa转速计”,父菜单:20,布局:null,子项:[]}]}]}]}]}],,
值=数据.reduce(函数iter(r,a){
返回a.childrence&&a.childrence.length
r.concat(a.value,a.children.reduce(iter,[]))
:r;
}, []);
console.log(值);

.as console wrapper{max height:100%!important;top:0;}
“我可以循环它并构建数组,但是”您必须以某种方式进行循环。在这两种情况下,您都在处理数组。您尝试过什么吗?如果我只想获取父对象(即具有子数组的对象)的值,该怎么办?[4,5,6,7,8,11,14,15,18,19,20]这有点聪明,但它严重依赖于解析的内部机制。然后它需要首先对对象进行字符串化,这是一种开销。如果我想获得唯一父对象(即具有子数组的对象)的值,该怎么办?[4,5,6,7,8,11,14,15,18,19,20]您好@VikramMaiya我根据您的查询更新了我的答案。请检查并给出反馈谢谢Rohith Agrawal。如何将值属性类型从数字转换为字符串并将其存储在同一数组中。从这里开始:[{valu