Javascript 如果两个关联数组的一个字段值相同,则从其中提取一个字段值

Javascript 如果两个关联数组的一个字段值相同,则从其中提取一个字段值,javascript,jquery,Javascript,Jquery,我在下面尝试了jquery从另一个数组中获取数据,如果它们都有相同的id function fillVehicleDetails(vehicleDetailsArray,aggregationDriverArray, aggregationVehicleArray) { if (vehicleDetailsArray.length == 0){ $("#vehicle-table").append("<tr><td>No Vehicle Added

我在下面尝试了jquery从另一个数组中获取数据,如果它们都有相同的id

function fillVehicleDetails(vehicleDetailsArray,aggregationDriverArray, aggregationVehicleArray) {
    if (vehicleDetailsArray.length == 0){
        $("#vehicle-table").append("<tr><td>No Vehicle Added</td><td></td><td></td><td></td><td></td></tr>");
    }else{
        for (var counterOfLoop in vehicleDetailsArray){                    
            noOfVehicles++;
            var SearchVehicleId = vehicleDetailsArray[counterOfLoop]["VehicleId"]['$oid'];
            var VehicleNumber =  jQuery.grep(aggregationVehicleArray, function(a){
                return a['_id']['$oid'] == SearchVehicleId}).VehicleNumber;
            }
        }
    }
如果SearchVehicleId在循环中包含“5b962874d2ccda10ac003702”,则它应在VehicleNumber中获取“JK 123”。上面的代码返回“未定义”。。。 请帮忙

可能是解决此问题的正确工具。我建议总体上研究Lodash库,因为它对于处理JavaScript中的集合和数组非常有用

\uu.findIndex
解决了以下问题:

const _ = require('lodash');

let vehicles1 = [
    {
        VehicleNumber: "JK 123",
        VehicleType: "Permanent",
        _id: {$oid: "5b962874d2ccda10ac003702"}
    },
    {
        VehicleNumber: "JK 222",
        VehicleType: "Permanent",
        _id: {$oid: "5b962874d2ccda10ac003686"}    
    }
]

let vehicles2 = [
    {
        VehicleNumber: "JK 2-123",
        VehicleType: "Permanent",
        _id: {$oid: "5b962874d2ccda10ac001111"}
    },
    {
        VehicleNumber: "JK 2-222",
        VehicleType: "Permanent",
       _id: {$oid: "5b962874d2ccda10ac003686"}    
   }
]


for (var v in vehicles1)
{   
    let _id = vehicles1[v]._id;
    // Below is the example...
    let result = _.findIndex(vehicles2,['_id', _id]); 

    if(result > 0) {
        console.log('match: ', vehicles2[result]);
    }
}
可能是解决这个问题的正确工具。我建议总体上研究Lodash库,因为它对于处理JavaScript中的集合和数组非常有用

\uu.findIndex
解决了以下问题:

const _ = require('lodash');

let vehicles1 = [
    {
        VehicleNumber: "JK 123",
        VehicleType: "Permanent",
        _id: {$oid: "5b962874d2ccda10ac003702"}
    },
    {
        VehicleNumber: "JK 222",
        VehicleType: "Permanent",
        _id: {$oid: "5b962874d2ccda10ac003686"}    
    }
]

let vehicles2 = [
    {
        VehicleNumber: "JK 2-123",
        VehicleType: "Permanent",
        _id: {$oid: "5b962874d2ccda10ac001111"}
    },
    {
        VehicleNumber: "JK 2-222",
        VehicleType: "Permanent",
       _id: {$oid: "5b962874d2ccda10ac003686"}    
   }
]


for (var v in vehicles1)
{   
    let _id = vehicles1[v]._id;
    // Below is the example...
    let result = _.findIndex(vehicles2,['_id', _id]); 

    if(result > 0) {
        console.log('match: ', vehicles2[result]);
    }
}

您返回了错误的值。尝试此
返回一个[''u id']['$oid']==SearchVehicleId}[0]。车辆编号
。因为grep正在数组中存储,数组从索引0开始

var SearchVehicleId=“5b962874d2ccda10ac003702”;
var聚合车辆射线=[
{
“车辆编号”:“JK 123”,
“车辆类型”:“永久性”,
“_id”:{“$oid”:“5b962874d2ccda10ac003702”}
},{
“车辆编号”:“JK 222”,
“车辆类型”:“永久性”,
“_id”:{“$oid”:“5b962874d2ccda10ac003686”}
}
];
var VehicleNumber=jQuery.grep(AggregationVehiclerray,函数(a){
返回一个[''u id']['$oid']==SearchVehicleId}[0];
控制台日志(车辆编号)

您返回了错误的值。尝试此
返回一个[''u id']['$oid']==SearchVehicleId}[0]。车辆编号
。因为grep正在数组中存储,数组从索引0开始

var SearchVehicleId=“5b962874d2ccda10ac003702”;
var聚合车辆射线=[
{
“车辆编号”:“JK 123”,
“车辆类型”:“永久性”,
“_id”:{“$oid”:“5b962874d2ccda10ac003702”}
},{
“车辆编号”:“JK 222”,
“车辆类型”:“永久性”,
“_id”:{“$oid”:“5b962874d2ccda10ac003686”}
}
];
var VehicleNumber=jQuery.grep(AggregationVehiclerray,函数(a){
返回一个[''u id']['$oid']==SearchVehicleId}[0];
控制台日志(车辆编号)

我无法从中找到任何东西。。。请通过提供代码段来帮助我,我无法从中找到任何东西。。。请提供代码段帮助