Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.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 如何在Node.js中使用最少数量的数组循环_Javascript_Node.js_Arrays_Loops - Fatal编程技术网

Javascript 如何在Node.js中使用最少数量的数组循环

Javascript 如何在Node.js中使用最少数量的数组循环,javascript,node.js,arrays,loops,Javascript,Node.js,Arrays,Loops,我需要从“网格”数组中获取“网格id”(步骤1) 检查“variationsDB”数组中是否存在此“grid_id”(步骤2) 使用此“网格id”,获取“变体id”,并检查它是否存在于“变体”数组中(步骤3) 如果在任何步骤中返回为false,则返回一个错误 我每个人只能想到两个或更多:( 我需要更干净的东西 代码: 您可以使用find和some检查每个数组中的id var grids=[{“grid\u id”:1},{“grid\u id”:2}] var variationsDB=[{“

我需要从“网格”数组中获取“网格id”(步骤1)

检查“variationsDB”数组中是否存在此“grid_id”(步骤2)

使用此“网格id”,获取“变体id”,并检查它是否存在于“变体”数组中(步骤3)

如果在任何步骤中返回为false,则返回一个错误

我每个人只能想到两个或更多:(

我需要更干净的东西

代码:


您可以使用
find
some
检查每个数组中的id

var grids=[{“grid\u id”:1},{“grid\u id”:2}]
var variationsDB=[{“variation_id”:3,“grid_id”:1},{“variation_id”:7,“grid_id”:2}]
var variations=[{“variations_id”:3},{“variations_id”:7}]
函数检查id(id){
温度=[]
id=grids.find(x=>x.grid\u id==id)
如果(ID){
if(variationsDB.some(o=>{if(o.grid\u id==ids.grid\u id){temp.push(o.variation\u id);返回true}}){
if(variations.some(o=>o.variations_id==temp[0])返回true
else抛出新错误(“在变体中找不到键”)
}
否则将抛出新错误(“variationDB中未找到键”)
}
else抛出新错误(“在网格中找不到键”)
}

log(检查ID(1))
创建一个函数来过滤数组。 其中,第一个参数是要筛选的目标数组中存在的数组的对象。 第二个参数是要过滤掉的数组 第三个是关键 请参阅下面的代码

//步骤1
常数网格=[
{
网格id:1,
},
{
网格id:2,
},
];
//步骤2
常量变量SDB=[
{
变更编号:3,
网格id:1,
},
{
变更编号:7,
网格id:2,
},
{
变更编号:8,
网格id:3,
},
];
//步骤3
常数变化=[
{
变更编号:3,
},
{
变更编号:7,
},
];
//过滤数组中的公共值
常量过滤器阵列=(a、b、键)=>{
//初始化数组
常数newArr=[];
a、 forEach((x)=>{
b、 forEach((y)=>{
如果(x[键]==y[键]){
//将项目推送到已初始化的位置
//如果项目的键匹配
新推力(y);
}
});
});
//返回已初始化的数组
返回newArr;
};
//分配过滤后的数组
常量firstFilter=filterArray(网格、变量DB,“网格id”);
const secondFilter=filterray(firstFilter,variation,“variation_id”);

console.log(secondFilter);
您不能重新排序步骤吗?因此1.从网格中获取网格id;2.从变体中获取变体id;3.检查变量是否存在网格id和变体id DB;如果是,您可以使用
设置
使代码更干净(当然是自以为是的)在您的解决方案中,“grid_id”和“variation_id”之间会有相当多的组合,以便稍后在“variationsDB”数组中进行检查。想象一下,“variations”数组有几十个项目,而“grid”数组有5个项目……对于“grid”数组中的每个项目,您必须将其与“variations”数组中的每个项目连接起来
// Step 1
"grids": [
    {
        "grid_id": 1
    },
    {
        "grid_id": 2
    }
],

// Step 2
"variationsDB": [
    {
        "variation_id": 3,
        "grid_id": 1
    },
    {
        "variation_id": 7,
        "grid_id": 2
    }
],

// Step 3
"variations": [
    {
        "variation_id": 3
    },
    {
        "variation_id": 7
    }
]