Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript中循环遍历对象中的对象数组_Javascript_Arrays_Angularjs - Fatal编程技术网

在JavaScript中循环遍历对象中的对象数组

在JavaScript中循环遍历对象中的对象数组,javascript,arrays,angularjs,Javascript,Arrays,Angularjs,我希望你们能帮助我 首先,我知道在这个问题上已经说过很多,也写过很多,在过去的几个小时里,我一直在阅读和尝试各种解决方案,但我还缺少一些东西 我也相信这可能是一个非常简单的任务,所以我为我的无知提前道歉 如何在JavaScript中循环遍历对象中的对象数组? 我已经读过一篇文章,应该用for…in循环来表示数组,但是一个简单的for循环来表示对象,但我不知道如何通过循环和对象中的对象数组 这就是我想要实现的目标: 我想在我的UI中显示与特定ReportTemplateTypeId匹配的报告列表(

我希望你们能帮助我

首先,我知道在这个问题上已经说过很多,也写过很多,在过去的几个小时里,我一直在阅读和尝试各种解决方案,但我还缺少一些东西

我也相信这可能是一个非常简单的任务,所以我为我的无知提前道歉

如何在JavaScript中循环遍历对象中的对象数组?

我已经读过一篇文章,应该用for…in循环来表示数组,但是一个简单的for循环来表示对象,但我不知道如何通过循环和对象中的对象数组

这就是我想要实现的目标:

我想在我的UI中显示与特定ReportTemplateTypeId匹配的报告列表(报告名称)

为此,我尝试循环检索到的数据(在我的数据调用之后),以构建这样一个要显示的列表

要显示的报表名称必须具有ReportTemplateTypeId==1

我检索到的数据如下所示:SelectableReportTemplateNames:[{{{}}、{{{}、{{}、{{}}、{{}}],其中一个对象位于数组中的一个对象内

下面是一个实际的数据示例,我想在列表中添加4条记录:

"SelectableReportTemplateNames": [
    {
        "ReportTemplateId": 1,
        "ReportTemplateName": "Proof of Receipt",
        "ReportTemplatePath": "...rdlc",
        "ReportTemplateType": {
            "ReportTemplateTypeId": 2,
            "ReportTemplateTypeDescription": "Inventory - Proof of Receipt",
            "Id": null
        },
        "Id": "5653781274d4f23d4cbb54b8"
    },
    {
        "ReportTemplateId": 2,
        "ReportTemplateName": "Proof of Transfer",
        "ReportTemplatePath": ".....rdlc",
        "ReportTemplateType": {
            "ReportTemplateTypeId": 3,
            "ReportTemplateTypeDescription": "Inventory - Proof of Transfer",
            "Id": null
        },
        "Id": "5653781274d4f23d4cbb54b9"
    },
    {
        "ReportTemplateId": 11,
        "ReportTemplateName": "All Calls Report",
        "ReportTemplatePath": "....rdlc",
        "ReportTemplateType": {
            "ReportTemplateTypeId": 1,
            "ReportTemplateTypeDescription": "All Calls Report",
            "Id": null
        },
        "Id": "5739a89577801d7f0c10254c"
    },
    {
        "ReportTemplateId": 12,
        "ReportTemplateName": "High Priority Calls Report",
        "ReportTemplatePath": "......rdlc",
        "ReportTemplateType": {
            "ReportTemplateTypeId": 1,
            "ReportTemplateTypeDescription": "High Priority Calls Report",
            "Id": null
        },
        "Id": "5739a89e77801d7f0c10254d"
    },
    {
        "ReportTemplateId": 13,
        "ReportTemplateName": "Call Asset Lines Report",
        "ReportTemplatePath": "......rdlc",
        "ReportTemplateType": {
            "ReportTemplateTypeId": 1,
            "ReportTemplateTypeDescription": "Call Asset Lines Report",
            "Id": null
        },
        "Id": "5739aa7d77801d7f0c10254e"
    },
    {
        "ReportTemplateId": 16,
        "ReportTemplateName": "Daily Status Report",
        "ReportTemplatePath": ".....rdlc",
        "ReportTemplateType": {
            "ReportTemplateTypeId": 1,
            "ReportTemplateTypeDescription": "Daily Status Report",
            "Id": null
        },
        "Id": "5739abb077801d7f0c102552"
    }
],

我提前非常感谢你

如果您的结构是这样的,并且在很长一段时间内不会改变,您可以对循环进行硬编码:

var outerArray = whateverNameYourVariableHas["SelectableReportTemplateNames"];
for (var objIndex = 0; objIndex < outerArray.length; objIndex++) {
    var currentObject = outerArray[objIndex];
    // handle your objects here

   var templateType - currentObject["ReportTemplateType"];

   for (var templateTypeProperty in templateType) {
       // handle template type properties here.
       // in this loop, templateTyeProperty is a string with the name of the current property.
   }
}
var outerArray=whateverNameYourVariableHas[“SelectableReportTemplateNames”];
对于(变量objIndex=0;objIndex
如果您的结构是这样的,并且在很长一段时间内不会改变,您可以对循环进行硬编码:

var outerArray = whateverNameYourVariableHas["SelectableReportTemplateNames"];
for (var objIndex = 0; objIndex < outerArray.length; objIndex++) {
    var currentObject = outerArray[objIndex];
    // handle your objects here

   var templateType - currentObject["ReportTemplateType"];

   for (var templateTypeProperty in templateType) {
       // handle template type properties here.
       // in this loop, templateTyeProperty is a string with the name of the current property.
   }
}
var outerArray=whateverNameYourVariableHas[“SelectableReportTemplateNames”];
对于(变量objIndex=0;objIndex
您可以使用

var object={“SelectableReportTemplateNames”:[{“ReportTemplateId”:1,“ReportTemplateName”:“收据证明”,“ReportTemplatePath”:“…rdlc”,“ReportTemplateType”:{“ReportTemplateId”:2,“ReportTemplateTypeDescription”:“库存-收据证明”,“Id”:null},“Id”:“5653781274d4f23d4cbb54b8”},{“ReportTemplateId”:2,“ReportTemplateName:“转让证明”,“ReportTemplatePath:”…rdlc,“ReportTemplateType:”{“ReportTemplateTypeId”:3,“ReportTemplateTypeDescription:”“库存-转让证明”,“Id”:null},“Id:“5653781274d4f23d4cbb54b9”},{“ReportTemplateId”:11,“ReportTemplateName:“所有调用报告”,“ReportTemplatePath:”…rdlc“ReportTemplateType:{“ReportTemplateTypeId”:1,“ReportTemplateTypeDescription”:“所有调用报告”,“Id”:null},“Id”:“5739a89577801d7f0c10254c”},{“ReportTemplateId”:12,“ReportTemplateName”:“高优先级调用报告”,“ReportTemplatePath”:“……rdlc”,“ReportTemplateType”:{“ReportTemplateTypeId”:1,“ReportTemplateTypeDescription”“:“高优先级调用报告”,“Id”:null},“Id”:“5739a89e77801d7f0c10254d”},{“ReportTemplateId”:13,“ReportTemplateName”:“调用资产行报告”,“ReportTemplatePath”:““5739aa7d77801d7f0c10254e”},{“ReportTemplateId”:16,“ReportTemplateName”:“每日状态报告”,“ReportTemplatePath”:“…rdlc”,“ReportTemplateType”:{“ReportTemplateTypeId”:1,“ReportTemplateTypeDescription”:“每日状态报告”,“Id”:null},“Id”:“5739abb077801d7f0c102552”};
object.SelectableReportTemplateNames.forEach(函数(a){
如果(a.ReportTemplateType.ReportTemplateTypeId==1){
document.write(a.ReportTemplateName+“
”); }
});
您可以使用

var object={“SelectableReportTemplateNames”:[{“ReportTemplateId”:1,“ReportTemplateName”:“收据证明”,“ReportTemplatePath”:“…rdlc”,“ReportTemplateType”:{“ReportTemplateId”:2,“ReportTemplateTypeDescription”:“库存-收据证明”,“Id”:null},“Id”:“5653781274d4f23d4cbb54b8},{“ReportTemplateId”:2,”ReportTemplateName:“转让证明”,“ReportTemplatePath:“…rdlc”,“ReportTemplateType:{”ReportTemplateTypeId“:3,“ReportTemplateTypeDescription:“库存-转让证明”,“Id”:null},“Id:“5653781274F23D4CBB54B9”},{“ReportTemplateId”:11,“ReportTemplateName:“所有调用报告”,“ReportTemplatePath:“…rdlc”ReportTemplateType:{“ReportTemplateTypeId”:1,“ReportTemplateTypeDescription”:“所有调用报告”,“Id”:null},“Id”:“5739a89577801d7f0c10254c”},{“ReportTemplateId”:12,“ReportTemplateName”:“高优先级调用报告”,“ReportTemplatePath”:“……rdlc”,“ReportTemplateType”:{“ReportTemplateTypeId”:1,“ReportTemplateTypeDescription”“:“高优先级调用报告”,“Id”:null},“Id”:“5739a89e77801d7f0c10254d”},{“ReportTemplateId”:13,“ReportTemplateName”:“调用资产行报告”,“ReportTemplatePath”:““5739aa7d77801d7f0c10254e”},{“ReportTemplateId”:16,“ReportTemplateName”:“每日状态报告”,“ReportTemplatePath”:“。。。
for (var i = 0; i < dataArray.length; i++) { 
    if(dataArray[i]["ReportTemplateType"]["ReportTemplateTypeId"] == 1) {
        console.log(dataArray[i]["ReportTemplateName"]);
    }
}
data.SelectableReportTemplateNames.filter(function (el) {
    return (el.ReportTemplateId === 1);
});
/*OUTPUTS
[{
        "ReportTemplateId" : 1,
        "ReportTemplateName" : "Proof of Receipt",
        "ReportTemplatePath" : "...rdlc",
        "ReportTemplateType" : {
            "ReportTemplateTypeId" : 2,
            "ReportTemplateTypeDescription" : "Inventory - Proof of Receipt",
            "Id" : null
        },
        "Id" : "5653781274d4f23d4cbb54b8"
    }
]
*/
data.SelectableReportTemplateNames.filter(function (el) {
    return (el.ReportTemplateId === 1);
}).forEach(function (el) {
    console.log(el.ReportTemplateName);
    alert(el.ReportTemplateName);
});
/* ALERTS AND CONSOLE LOGS: "Proof of Receipt" */
data.SelectableReportTemplateNames.filter(function (el) {
    return (el.ReportTemplateType.ReportTemplateTypeId === 1);
}).forEach(function (el) {
    console.log(el.ReportTemplateName);
    alert(el.ReportTemplateName);
});
/* OUTPUTS
All Calls Report
High Priority Calls Report
Call Asset Lines Report
Daily Status Report
/*
var myArray = youArrayName["SelectableReportTemplateNames"];

$scope.filteredArray = myArray.filter(function(x){
  return x.ReportTemplateId === 1;
 })
//Filter will be an array containing all that have ReportTemplateId as 1

//Use in ng-repeat like
<p ng-repeat="x in filteredArray">{{x.ReportTemplateName}}</p>
db.YourCollection.find({ "SelectableReportTemplateNames.ReportTemplateType.ReportTemplateTypeId" : 1});
var resultTemplate = _.find(SelectableReportTemplateNames,function(eachTemplate){
  return eachTemplate.ReportTemplateType.ReportTemplateTypeId == 1;
})