Javascript 如何在Node.js中使用最少数量的数组循环
我需要从“网格”数组中获取“网格id”(步骤1) 检查“variationsDB”数组中是否存在此“grid_id”(步骤2) 使用此“网格id”,获取“变体id”,并检查它是否存在于“变体”数组中(步骤3) 如果在任何步骤中返回为false,则返回一个错误 我每个人只能想到两个或更多:( 我需要更干净的东西 代码: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=[{“
您可以使用
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
}
]