Javascript 查找第二个数组的索引并基于该索引获取记录
我试图将字段值与cars1变量匹配的myArray的匹配记录的标志设置为true 现在cars1和cars2记录之间有1对1的关系,这意味着cars1的t1分别指向cars2的abc 在将myarray与Cars1进行匹配时,如果找到匹配项,则我要注意Cars1的索引,并基于该索引,我希望从cars2获取记录,并在该索引位置分配给array2 例如:myArray的t1和cars1的t1匹配,因此t1的索引为0,因此基于此索引从cars2获取第0个索引记录,并在第0个索引处分配给array2。对于t3,pqr将位于array2的第2位 阵列中的预期输出2: 但在这里,我不知道如何记录Cars1的匹配记录的索引,并在该索引位置分配给array2 var myArray=[ {字段:'t1',标志:false}, {字段:'t2',标志:false}, {字段:“t3”,标志:false}, {字段:'t4',标志:false}, {字段:“t5”,标志:false} ]; var cars1=[t1,t3,t5]; var cars2=[abc、pqr、lmn]; var array2=[]; myArray.forEachcar=>car.flag=cars1.indexOfcar.field>-1;Javascript 查找第二个数组的索引并基于该索引获取记录,javascript,Javascript,我试图将字段值与cars1变量匹配的myArray的匹配记录的标志设置为true 现在cars1和cars2记录之间有1对1的关系,这意味着cars1的t1分别指向cars2的abc 在将myarray与Cars1进行匹配时,如果找到匹配项,则我要注意Cars1的索引,并基于该索引,我希望从cars2获取记录,并在该索引位置分配给array2 例如:myArray的t1和cars1的t1匹配,因此t1的索引为0,因此基于此索引从cars2获取第0个索引记录,并在第0个索引处分配给array2。对
logmyArray对于小数据集有重复搜索的方式,对于相当大的数据集有构建映射的方式 重复搜索方式 您可以使用myArray上的map,在cars1:中查找car.field,然后如果找到,则从cars2返回该条目: ES5及更早版本:
var array2 = myArray.map(function(car) {
var index = cars1.indexOf(car.field);
if (index === -1) {
return undefined;
}
car.flag = true;
return cars2[index];
});
请注意,这将使用Array.prototype.map和副作用设置标志。一个纯粹主义者会说地图永远不会有副作用
例如:
常量myArray=[
{字段:'t1',标志:false},
{字段:'t2',标志:false},
{字段:“t3”,标志:false},
{字段:'t4',标志:false},
{字段:“t5”,标志:false}
];
常数cars1=[t1,t3,t5];
常数cars2=[abc、pqr、lmn];
常量array2=myArray.mapcar=>{
常量索引=cars1.indexOfcar.field;
如果索引==-1{
返回未定义;
}
car.flag=true;
返回cars2[索引];
};
console.logarray2;
console.logmyArray;
.作为控制台包装{
最大高度:100%!重要;
}
const array2 = myArray.map(car => {
const index = cars1.indexOf(car.field);
if (index === -1) {
return undefined;
}
car.flag = true;
return cars2[index];
});
var array2 = myArray.map(function(car) {
var index = cars1.indexOf(car.field);
if (index === -1) {
return undefined;
}
car.flag = true;
return cars2[index];
});