Javascript 如果两个关联数组的一个字段值相同,则从其中提取一个字段值
我在下面尝试了jquery从另一个数组中获取数据,如果它们都有相同的idJavascript 如果两个关联数组的一个字段值相同,则从其中提取一个字段值,javascript,jquery,Javascript,Jquery,我在下面尝试了jquery从另一个数组中获取数据,如果它们都有相同的id function fillVehicleDetails(vehicleDetailsArray,aggregationDriverArray, aggregationVehicleArray) { if (vehicleDetailsArray.length == 0){ $("#vehicle-table").append("<tr><td>No Vehicle Added
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];
控制台日志(车辆编号)代码>
我无法从中找到任何东西。。。请通过提供代码段来帮助我,我无法从中找到任何东西。。。请提供代码段帮助