Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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_Loops_For Loop - Fatal编程技术网

Javascript 在多个阵列中循环-推入多个阵列

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

目前我有三个阵列<代码>应用程序名,这是一个应用程序名<代码>加载项数量是每个应用程序正在使用的加载项数量。(这两个数组一起使用,例如“cirr contentful demo”有一个附加组件)

请看下面:

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);
            });