Javascript 在对象中找到所有的孙辈并对他们进行迭代?

Javascript 在对象中找到所有的孙辈并对他们进行迭代?,javascript,Javascript,我有下面的javascript对象 我需要找到 “prop3”子项的总数-在下面的示例中为7 找到第一个prop3子项,然后对它们进行迭代,直到找到最后一个(在步骤表单thingy中使用) 有什么想法吗 { "d399ca811f45": { "prop1": "d399ca811f45", "prop2": {}, "prop3": { "1d2097764d06": { "head

我有下面的javascript对象

我需要找到

  • “prop3”子项的总数-在下面的示例中为7
  • 找到第一个prop3子项,然后对它们进行迭代,直到找到最后一个(在步骤表单thingy中使用)
  • 有什么想法吗

    {
        "d399ca811f45": {
            "prop1": "d399ca811f45",
            "prop2": {},
            "prop3": {
                "1d2097764d06": {
                    "header": "value",
                    "subprop1": "1d2097764d06"
                }
            }
        },
        "6d0cb4c7748b": {
            "prop1": "6d0cb4c7748b",
            "prop3": {
                "3a29208f0015": {
                    "header": "value",
                    "subprop1": "3a29208f0015"
                },
                "e8eb0f1b339b": {
                    "header": "value",
                    "subprop1": "3a29208f0015"
                },
                "05d43aaf7ef7": {
                    "header": "value",
                    "subprop1": "3a29208f0015"
                }
            }
        },
        "39feecfa5498": {
            "prop1": "39feecfa5498",
            "prop2": {},
            "prop3": {
                "57a07392b86e": {
                    "header": "value",
                    "subprop1": "3a29208f0015"
                },
                "fd84d411a823": {
                    "header": "value",
                    "subprop1": "3a29208f0015"
                },
                "75ff469329ab": {
                    "header": "value",
                    "subprop1": "3a29208f0015"
                }
            }
        }
    }
    

    您正在寻找的概念称为“对象循环”。一旦理解了这个概念,您就可以组合不同的循环来生成您要查找的数据集

    可以使用循环在原始数据结构上迭代。一个循环用于顶级对象,另一个循环用于
    prop3
    对象。但是,您也可以使用helper将对象转换为数组,并使用JS中数组可用的所有迭代工具,如和

    考虑以下将对象集合转换为数组的解决方案:

    var数据={“d399ca811f45”:{“prop1”:“d399ca811f45”,“prop2”:{},“prop3”:{“1d2097764d06”:{“header”:“value”,“subop1”:“1d2097764d06”}}},“6d0cb4c7748b”:{“prop1”:“6d0cb4c7748b”,“prop3”:{“3a29208f0015”:{“header”:“value”,“subop1”:“3a29208f0015”},“E8EB0F139B”:“header”value”,“subop1”:“subop5”,“05d43aaf7ef7:{“标头”:“值”,“Subop1”:“3a29208f0015”}}},“39feecfa5498”:{“prop1”:“39feecfa5498”,“prop2”:{},“prop3”:{“标头”:“值”,“Subop1”:“3A292F0015”},“FD84D41A823”:“标头”:“值”,“Subop1”:“3a29208f0015”},“75ff469329ab”:{“标头”值,“Subop1”:“Subop1”}
    //将“数据”转换为数组,并将所有项减少为
    //仅使用prop3项构建新数组
    var prop3List=Object.values(data).reduce(函数(列表,项){
    //将prop3项添加到集合中
    返回list.concat(Object.values(item.prop3));
    }, []);
    console.log('Prop3总计',Prop3列表长度);
    console.log('第一项',prop3List[0])
    //循环浏览所有项目
    prop3List.forEach(功能(项目){
    //item.header
    //项目1.1
    console.log(item.header,item.subsp1)
    
    })
    您可以根据当前需求使用此功能

    constpropgetter=(数据,键名)=>{
    让propArray=[]
    Object.keys(数据).forEach(rootKey=>{
    key(数据[rootKey]).forEach(key=>{
    如果(键===键名){
    Object.keys(数据[[rootKey]][[key]]).forEach(子键=>{
    propArray.push({[subKey]:数据[[rootKey]][[key]][[subKey]]})
    })
    }
    })
    })
    返回通道
    }
    const data={“d399ca811f45”:{“prop1”:“d399ca811f45”,“prop2”:{},“prop3”:{“1d2097764d06”:{“header”:“value”,“subP1”:“1d2097764d06”}}},“6d0cb4c7748b”:{“prop1”:“6d0cb4c7748b”,“prop3”:{“3a29208f0015”:{“header”:“value”,“subP1”:“3A298F0015”},“E8EBB339B”:“header”value”,“subP208F0015”{“header”:05d43aaf7ef7:{“标头”:“值”,“Subop1”:“3a29208f0015”}}},“39feecfa5498”:{“prop1”:“39feecfa5498”,“prop2”:{},“prop3”:{“标头”:“值”,“Subop1”:“3A292F0015”},“FD84D41A823”:{“标头”:“值”,“Subop1”:“3a29208f0015”},“75FF4629AB”:“标头”{“值”,“Subop1”:“3A298F0015”}
    
    console.log(propGetter(data,'prop3'));
    @mplungjan vue tag已删除,这是一个错误。但是您链接到的答案并没有回答这个问题。我知道如何访问对象的值,但我的问题是如何获取孙子(而不是子)的总数,在我的例子中,超过多个孩子?所以不仅仅是一个孩子的孙子孙女,而是多个孩子的孙子孙女总数。我为您制作并修复了一个片段