Javascript 在多个阵列中循环-推入多个阵列
目前我有三个阵列<代码>应用程序名,这是一个应用程序名<代码>加载项数量是每个应用程序正在使用的加载项数量。(这两个数组一起使用,例如“cirr contentful demo”有一个附加组件) 请看下面:Javascript 在多个阵列中循环-推入多个阵列,javascript,arrays,loops,for-loop,Javascript,Arrays,Loops,For Loop,目前我有三个阵列应用程序名,这是一个应用程序名加载项数量是每个应用程序正在使用的加载项数量。(这两个数组一起使用,例如“cirr contentful demo”有一个附加组件) 请看下面: var prodArrayAppName=[], stgArrayAppName=[], devArrayAppName=[], prodNoAddOns=[], stgNoAddOns=[], devnoadons=[]; var appNames=[“cirr contentful演示”、“cirr c
var prodArrayAppName=[],
stgArrayAppName=[],
devArrayAppName=[],
prodNoAddOns=[],
stgNoAddOns=[],
devnoadons=[];
var appNames=[“cirr contentful演示”、“cirr contentful处理程序备份”、“cirr测试应用程序”];
var numberAddOne=[1,5,7]
var生产=[{
“id”:“16”,
“heroku_应用程序”:“cirr内容演示”,
“阶段”:“生产”
},
{
“id”:“4”,
“heroku_应用程序”:“cirr内容处理程序备份”,
“阶段”:“阶段”
},
{
“id”:“9”,
“heroku_应用程序”:“测试备份”,
“阶段”:“发展”
}];
我需要的是在对象的production
数组中循环,将heroku_应用程序
名称与appNames
数组中的名称匹配。一旦找到,检查阶段类型示例:生产、阶段、开发
将应用程序名称推送到正确的数组中。例如,prodArrayAppName
的生产应用程序。然后获取应用程序拥有的插件数量,并将其放入正确的noofadons
。例如prodarayappname
这意味着游戏的结局应该是这样的:
prodArrayAppName = [cirr-contentful-demo]
prodNoAddOns = [1]
stgArrayAppName = [cirr-contentful-handler-backu]
stgNoAddOns = [5]
devArrayAppName = [test-backup]
devNoAddOns = [7]
这是我迄今为止尝试过的代码,但迄今为止没有成功:
production.forEach(函数(a){
appNames.forEach(函数(b){
numberadone.forEach(函数(c){
if(a==b.heroku_应用程序){
如果(b.阶段==“生产”){
prodarayappname.push(b.heroku_应用程序);
推送(c);
}否则如果(b.stage==“Staging”){
stgArrayAppName.push(b.heroku_应用程序);
stgNoAddOns.push(c);
}否则{
devArrayAppName.push(b.heroku_应用程序);
推送(c);
}
}
});
});
});
您实际上不需要嵌套循环
- 对于
:生产中的每个项目
- 在
中查找项目的appNames
heroku\u应用程序的索引。我们会用它来找到号码
- 打开项目的
,将项目名称添加到(阶段)ArrayAppName,并将项目的交叉引用编号添加到(阶段)NoAddOns阶段
- 在
您实际上不需要嵌套循环
- 对于
:生产中的每个项目
- 在
中查找项目的appNames
heroku\u应用程序的索引。我们会用它来找到号码
- 打开项目的
,将项目名称添加到(阶段)ArrayAppName,并将项目的交叉引用编号添加到(阶段)NoAddOns阶段
- 在
您根本不需要显式循环来完成此任务-利用:
var init={
开发应用程序名称:[],
发展挑战:[],
StagingAppName:[],
StagingNoadons:[],
ProductionAppName:[],
生产无拒绝:[],
};
var appNames=[“cirr contentful演示”、“cirr contentful处理程序备份”、“cirr测试应用程序”];
var numberAddOne=[1,5,7]
var生产=[
{
“id”:“16”,
“heroku_应用程序”:“cirr内容演示”,
“阶段”:“生产”
},
{
“id”:“4”,
“heroku_应用程序”:“cirr内容处理程序备份”,
“阶段”:“阶段”
},
{
“id”:“9”,
“heroku_应用程序”:“测试备份”,
“阶段”:“发展”
}];
var结果=生产。减少(功能(p,c){
var idx=appNames.indexOf(c.heroku_应用程序);
p[c.stage+'AppName'].push(c.heroku_应用程序);
p[c.stage+'NoAddOns'].push(numberAddOne[idx]| | 0);
返回p;
},init);
控制台日志(结果)代码>您根本不需要显式循环来完成此任务-利用:
var init={
开发应用程序名称:[],
发展挑战:[],
StagingAppName:[],
StagingNoadons:[],
ProductionAppName:[],
生产无拒绝:[],
};
var appNames=[“cirr contentful演示”、“cirr contentful处理程序备份”、“cirr测试应用程序”];
var numberAddOne=[1,5,7]
var生产=[
{
“id”:“16”,
“heroku_应用程序”:“cirr内容演示”,
“阶段”:“生产”
},
{
“id”:“4”,
“heroku_应用程序”:“cirr内容处理程序备份”,
“阶段”:“阶段”
},
{
“id”:“9”,
“heroku_应用程序”:“测试备份”,
“阶段”:“发展”
}];
var结果=生产。减少(功能(p,c){
var idx=appNames.indexOf(c.heroku_应用程序);
p[c.stage+'AppName'].push(c.heroku_应用程序);
p[c.stage+'NoAddOns'].push(numberAddOne[idx]| | 0);
返回p;
},init);
控制台日志(结果)代码>您尝试的代码有一些问题。如果(a===b.heroku_应用程序)本身错误,则使用的条件检查。请尝试下面给出的代码
var prodArrayAppName = [], stgArrayAppName = [], devArrayAppName = [], prodNoAddOns = [],
stgNoAddOns = [], devNoAddOns = [];
var appNames = ["cirr-contentful-demo", "cirr-contentful-handler-backup", "cirr-test-app"];
var numberAddOne = [1,5,7];
var production = [
{
"id":"16",
"heroku_application":"cirr-contentful-demo",
"stage" : "Production"
},
{
"id":"4",
"heroku_application":"cirr-contentful-handler-backup",
"stage" : "Staging"
},
{
"id":"9",
"heroku_application":"test-backup",
"stage" : "Development"
}];
production.forEach(function(a) {
for(var i=0;i<appNames.length;i++)
{
if(a.heroku_application==appNames[i])
{
if(a.stage==="Production")
{
prodArrayAppName.push(appNames[i]);
prodNoAddOns.push(numberAddOne[i]);
}
else if(a.stage==="Staging")
{
stgArrayAppName.push(appNames[i]);
stgNoAddOns.push(numberAddOne[i]);
}
else if(a.stage==="Development")
{
devArrayAppName.push(appNames[i]);
devNoAddOns.push(numberAddOne[i]);
}
}
}
});
//checking code
prodArrayAppName.forEach(function(a) {
alert(a);
});
var prodarayappname=[]、stgArrayAppName=[]、devArrayAppName=[]、prodNoAddOns=[]、,
stgNoAddOns=[],devnoadons=[];
var appNames=[“cirr contentful演示”、“cirr contentful处理程序备份”、“cirr测试应用程序”];
var numberAddOne=[1,5,7];
var生产=[
{
“id”:“16”,
“heroku_应用程序”:“cirr内容演示”,
“阶段”:“生产”
},
var prodArrayAppName = [], stgArrayAppName = [], devArrayAppName = [], prodNoAddOns = [],
stgNoAddOns = [], devNoAddOns = [];
var appNames = ["cirr-contentful-demo", "cirr-contentful-handler-backup", "cirr-test-app"];
var numberAddOne = [1,5,7];
var production = [
{
"id":"16",
"heroku_application":"cirr-contentful-demo",
"stage" : "Production"
},
{
"id":"4",
"heroku_application":"cirr-contentful-handler-backup",
"stage" : "Staging"
},
{
"id":"9",
"heroku_application":"test-backup",
"stage" : "Development"
}];
production.forEach(function(a) {
for(var i=0;i<appNames.length;i++)
{
if(a.heroku_application==appNames[i])
{
if(a.stage==="Production")
{
prodArrayAppName.push(appNames[i]);
prodNoAddOns.push(numberAddOne[i]);
}
else if(a.stage==="Staging")
{
stgArrayAppName.push(appNames[i]);
stgNoAddOns.push(numberAddOne[i]);
}
else if(a.stage==="Development")
{
devArrayAppName.push(appNames[i]);
devNoAddOns.push(numberAddOne[i]);
}
}
}
});
//checking code
prodArrayAppName.forEach(function(a) {
alert(a);
});