Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.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 - Fatal编程技术网

Javascript 查找第二个数组的索引并基于该索引获取记录

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。对

我试图将字段值与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;
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];
});