在JavaScript中循环遍历对象中的对象数组
我希望你们能帮助我 首先,我知道在这个问题上已经说过很多,也写过很多,在过去的几个小时里,我一直在阅读和尝试各种解决方案,但我还缺少一些东西 我也相信这可能是一个非常简单的任务,所以我为我的无知提前道歉 如何在JavaScript中循环遍历对象中的对象数组? 我已经读过一篇文章,应该用for…in循环来表示数组,但是一个简单的for循环来表示对象,但我不知道如何通过循环和对象中的对象数组 这就是我想要实现的目标: 我想在我的UI中显示与特定ReportTemplateTypeId匹配的报告列表(报告名称) 为此,我尝试循环检索到的数据(在我的数据调用之后),以构建这样一个要显示的列表 要显示的报表名称必须具有ReportTemplateTypeId==1 我检索到的数据如下所示:SelectableReportTemplateNames:[{{{}}、{{{}、{{}、{{}}、{{}}],其中一个对象位于数组中的一个对象内 下面是一个实际的数据示例,我想在列表中添加4条记录:在JavaScript中循环遍历对象中的对象数组,javascript,arrays,angularjs,Javascript,Arrays,Angularjs,我希望你们能帮助我 首先,我知道在这个问题上已经说过很多,也写过很多,在过去的几个小时里,我一直在阅读和尝试各种解决方案,但我还缺少一些东西 我也相信这可能是一个非常简单的任务,所以我为我的无知提前道歉 如何在JavaScript中循环遍历对象中的对象数组? 我已经读过一篇文章,应该用for…in循环来表示数组,但是一个简单的for循环来表示对象,但我不知道如何通过循环和对象中的对象数组 这就是我想要实现的目标: 我想在我的UI中显示与特定ReportTemplateTypeId匹配的报告列表(
"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;
})