Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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 在js中将ID从一个数组映射到另一个数组_Javascript - Fatal编程技术网

Javascript 在js中将ID从一个数组映射到另一个数组

Javascript 在js中将ID从一个数组映射到另一个数组,javascript,Javascript,我试图根据ewr\u fr\u id将所有VIN从VIN数组映射到RAWSresponse数组 下面是我的代码: const rawResponse=[ { ewr_fr_id: '303', ewr_id: 102, yrq: '182', file_sequence: '1', fr_sequence: '102-182-1', manufacturer_name: 'Teryerter', report_category_cd: 'L',

我试图根据ewr\u fr\u id将所有VIN从VIN数组映射到RAWSresponse数组

下面是我的代码:

const rawResponse=[ { ewr_fr_id: '303',
    ewr_id: 102,
    yrq: '182',
    file_sequence: '1',
    fr_sequence: '102-182-1',
    manufacturer_name: 'Teryerter',
    report_category_cd: 'L',
    report_category_description: 'LightVehicle',
    date_qtr: '2018Q2',
    file_version: 1,
    file_type_cd: 'F',
    application_cd: 'S',
    application_description: 'SINGLE MODEL',
    file_name: 'SFNLIBERTY4X4-0404-10-06573.PDF',
    ifs_document_id: '000003L041001FP-SFNLIBERTY4X4-0404-10-06573.PDF',
    model_or_platform: 'VOLTA',
    model_year: '2016',
    is_attachment: 'false',
    cmpt_01: '10',
    cmpt_descr_01: 'PowerTrain',
    cmpt_02: null,
    cmpt_descr_02: null,
    cmpt_03: null,
    cmpt_descr_03: null,
    cmpt_04: null,
    cmpt_descr_04: null,
    cmpt_05: null,
    cmpt_descr_05: null },
  { ewr_fr_id: '303',
    ewr_id: 102,
    yrq: '182',
    file_sequence: '1',
    fr_sequence: '102-182-1',
    manufacturer_name: 'Teryerter',
    report_category_cd: 'L',
    report_category_description: 'LightVehicle',
    date_qtr: '2018Q2',
    file_version: 1,
    file_type_cd: 'F',
    application_cd: 'S',
    application_description: 'SINGLE MODEL',
    file_name: 'SFNLIBERTY4X4-0404-10-06573.PDF',
    ifs_document_id: '000003L041001FP-SFNLIBERTY4X4-0404-10-06573.PDF',
    model_or_platform: 'VOLTA',
    model_year: '2016',
    is_attachment: 'false',
    cmpt_01: '10',
    cmpt_descr_01: 'PowerTrain',
    cmpt_02: null,
    cmpt_descr_02: null,
    cmpt_03: null,
    cmpt_descr_03: null,
    cmpt_04: null,
    cmpt_descr_04: null,
    cmpt_05: null,
    cmpt_descr_05: null },
  { ewr_fr_id: '302',
    ewr_id: 102,
    yrq: '182',
    file_sequence: '1',
    fr_sequence: '102-182-1',
    manufacturer_name: 'Teryerter',
    report_category_cd: 'L',
    report_category_description: 'LightVehicle',
    date_qtr: '2018Q2',
    file_version: 1,
    file_type_cd: 'F',
    application_cd: 'S',
    application_description: 'SINGLE MODEL',
    file_name: 'SFNLIBERTY4X4-0404-10-06572.PDF',
    ifs_document_id: '000003L041001FP-SFNLIBERTY4X4-0404-10-06572.PDF',
    model_or_platform: 'VOLTA',
    model_year: '2016',
    is_attachment: 'false',
    cmpt_01: '10',
    cmpt_descr_01: 'PowerTrain',
    cmpt_02: null,
    cmpt_descr_02: null,
    cmpt_03: null,
    cmpt_descr_03: null,
    cmpt_04: null,
    cmpt_descr_04: null,
    cmpt_05: null,
    cmpt_descr_05: null },
  { ewr_fr_id: '302',
    ewr_id: 102,
    yrq: '182',
    file_sequence: '1',
    fr_sequence: '102-182-1',
    manufacturer_name: 'Teryerter',
    report_category_cd: 'L',
    report_category_description: 'LightVehicle',
    date_qtr: '2018Q2',
    file_version: 1,
    file_type_cd: 'F',
    application_cd: 'S',
    application_description: 'SINGLE MODEL',
    file_name: 'SFNLIBERTY4X4-0404-10-06572.PDF',
    ifs_document_id: '000003L041001FP-SFNLIBERTY4X4-0404-10-06572.PDF',
    model_or_platform: 'VOLTA',
    model_year: '2016',
    is_attachment: 'false',
    cmpt_01: '10',
    cmpt_descr_01: 'PowerTrain',
    cmpt_02: null,
    cmpt_descr_02: null,
    cmpt_03: null,
    cmpt_descr_03: null,
    cmpt_04: null,
    cmpt_descr_04: null,
    cmpt_05: null,
    cmpt_descr_05: null } ];

const fieldReportIds=[ '303', '303', '302', '302' ];

const vins=[ { vin: '2FMPK3J84FBB73425', ewr_fr_id: 303 },
  { vin: 'USELESS', ewr_fr_id: 302 },
  { vin: 'USELESS2', ewr_fr_id: 302 },
  { vin: 'VIN5801', ewr_fr_id: 303 } ];
这就是我想要尝试的:

  for (const row in rawResponse) {
    getVins = await db.select(context.dbClient, q.getVinsQuery, [rawResponse[row].ewr_fr_id]);
    if (vins.length > 0 ) {
    rawResponse[row].vins =  _.map(rawResponse, vins, 'ewr_fr_id');
  }
  else 
  {
    rawResponse[row].vins = []; // if there is no vins then add vins: [] to the response
  }
}
我的预期结果是:

   rawResponse=[ { ewr_fr_id: '303',
    ewr_id: 102,
    yrq: '182',
    file_sequence: '1',
    fr_sequence: '102-182-1',
    manufacturer_name: 'Teryerter',
    report_category_cd: 'L',
    report_category_description: 'LightVehicle',
    date_qtr: '2018Q2',
    file_version: 1,
    file_type_cd: 'F',
    application_cd: 'S',
    application_description: 'SINGLE MODEL',
    file_name: 'SFNLIBERTY4X4-0404-10-06573.PDF',
    ifs_document_id: '000003L041001FP-SFNLIBERTY4X4-0404-10-06573.PDF',
    model_or_platform: 'VOLTA',
    model_year: '2016',
    is_attachment: 'false',
    cmpt_01: '10',
    cmpt_descr_01: 'PowerTrain',
    cmpt_02: null,
    cmpt_descr_02: null,
    cmpt_03: null,
    cmpt_descr_03: null,
    cmpt_04: null,
    cmpt_descr_04: null,
    cmpt_05: null,
    cmpt_descr_05: null,
    vins:['VIN5801', '2FMPK3J84FBB73425']},
  { ewr_fr_id: '303',
    ewr_id: 102,
    yrq: '182',
    file_sequence: '1',
    fr_sequence: '102-182-1',
    manufacturer_name: 'Teryerter',
    report_category_cd: 'L',
    report_category_description: 'LightVehicle',
    date_qtr: '2018Q2',
    file_version: 1,
    file_type_cd: 'F',
    application_cd: 'S',
    application_description: 'SINGLE MODEL',
    file_name: 'SFNLIBERTY4X4-0404-10-06573.PDF',
    ifs_document_id: '000003L041001FP-SFNLIBERTY4X4-0404-10-06573.PDF',
    model_or_platform: 'VOLTA',
    model_year: '2016',
    is_attachment: 'false',
    cmpt_01: '10',
    cmpt_descr_01: 'PowerTrain',
    cmpt_02: null,
    cmpt_descr_02: null,
    cmpt_03: null,
    cmpt_descr_03: null,
    cmpt_04: null,
    cmpt_descr_04: null,
    cmpt_05: null,
    cmpt_descr_05: null,
    vins:['VIN5801', '2FMPK3J84FBB73425']},
  { ewr_fr_id: '302',
    ewr_id: 102,
    yrq: '182',
    file_sequence: '1',
    fr_sequence: '102-182-1',
    manufacturer_name: 'Teryerter',
    report_category_cd: 'L',
    report_category_description: 'LightVehicle',
    date_qtr: '2018Q2',
    file_version: 1,
    file_type_cd: 'F',
    application_cd: 'S',
    application_description: 'SINGLE MODEL',
    file_name: 'SFNLIBERTY4X4-0404-10-06572.PDF',
    ifs_document_id: '000003L041001FP-SFNLIBERTY4X4-0404-10-06572.PDF',
    model_or_platform: 'VOLTA',
    model_year: '2016',
    is_attachment: 'false',
    cmpt_01: '10',
    cmpt_descr_01: 'PowerTrain',
    cmpt_02: null,
    cmpt_descr_02: null,
    cmpt_03: null,
    cmpt_descr_03: null,
    cmpt_04: null,
    cmpt_descr_04: null,
    cmpt_05: null,
    cmpt_descr_05: null,
    vins:['USELESS', 'USELESS2']},
  { ewr_fr_id: '302',
    ewr_id: 102,
    yrq: '182',
    file_sequence: '1',
    fr_sequence: '102-182-1',
    manufacturer_name: 'Teryerter',
    report_category_cd: 'L',
    report_category_description: 'LightVehicle',
    date_qtr: '2018Q2',
    file_version: 1,
    file_type_cd: 'F',
    application_cd: 'S',
    application_description: 'SINGLE MODEL',
    file_name: 'SFNLIBERTY4X4-0404-10-06572.PDF',
    ifs_document_id: '000003L041001FP-SFNLIBERTY4X4-0404-10-06572.PDF',
    model_or_platform: 'VOLTA',
    model_year: '2016',
    is_attachment: 'false',
    cmpt_01: '10',
    cmpt_descr_01: 'PowerTrain',
    cmpt_02: null,
    cmpt_descr_02: null,
    cmpt_03: null,
    cmpt_descr_03: null,
    cmpt_04: null,
    cmpt_descr_04: null,
    cmpt_05: null,
    cmpt_descr_05: null,
    vins:['USELESS', 'USELESS2'] } ];

基本上,我试图修改rawResponse数组以添加VIN数组,如果ewr\u fr\u id与VIN数组中的相同,如果不匹配,则添加一个空数组(VIN:[])

您可以在此处使用
forEach
reduce
的组合:

rawResponse.forEach(response => {
  response.vins = vins.reduce((vinsArray, vin) => {
    if (+vin.ewr_fr_id === +response.ewr_fr_id) {
      vinsArray.push(vin.vin);
    }
    return vinsArray;
  }, []);
});
用于转换
rawResponse
中的每个项目。使用
ewr\u fr\u id
过滤
VIN
。并在过滤结果上使用
map()
,仅返回
vin

const-rawResponse=[{ewr\U fr\U id:'303',ewr\U id:102,yrq:'182',文件顺序:'1',fr\U顺序:'102-182-1',制造商名称:'Teryerter',报告类别\U cd:'L',报告类别\U描述:'LightVehicle',日期\u qtr:'2018Q2',文件版本:1,文件类型\u cd:'F',应用程序\u cd:'S',应用程序\u描述:'SINGLE模型',文件名:'SFNLIBERTY4X4-0404-10-06573.PDF',ifs_文件id:'000003L041001FP-SFNLIBERTY4X4-0404-10-06573.PDF',model_或_平台:'VOLTA',model_年份:'2016',是_附件:'false',cmpt_01:'10',cmpt_描述01:'PowerTrain',cmpt_02:null,cmpt_描述02:null,cmpt_03:null,cmpt_描述03:null,cmpt_描述03:null,cmpt_04:null,cmpt_描述05:null,{ewr\U fr\U id:'303',ewr\U id:102,yrq:'182',文件顺序:'1',fr\U顺序:'102-182-1',制造商名称:'Teryerter',报告类别\U cd:'L',报告类别\U描述:'LightVehicle',日期\u qtr:'2018Q2',文件版本:1,文件类型\u cd:'F',应用程序\u cd:'S',应用程序\u描述:'SINGLE模型',文件名:'SFNLIBERTY4X4-0404-10-06573.PDF',ifs_文件id:'000003L041001FP-SFNLIBERTY4X4-0404-10-06573.PDF',model_或_平台:'VOLTA',model_年份:'2016',是_附件:'false',cmpt_01:'10',cmpt_描述01:'PowerTrain',cmpt_02:null,cmpt_描述02:null,cmpt_03:null,cmpt_描述03:null,cmpt_描述03:null,cmpt_04:null,cmpt_描述05:null,{ewr\U fr\U id:'302',ewr\U id:102,yrq:'182',文件顺序:'1',fr\U顺序:'102-182-1',制造商名称:'Teryerter',报告类别\U cd:'L',报告类别\U描述:'LightVehicle',日期\u qtr:'2018Q2',文件版本:1,文件类型\u cd:'F',应用程序\u cd:'S',应用程序\u描述:'SINGLE模型',文件名:'SFNLIBERTY4X4-0404-10-06572.PDF',ifs_文件id:'000003L041001FP-SFNLIBERTY4X4-0404-10-06572.PDF',model_或_平台:'VOLTA',model_年份:'2016',是_附件:'false',cmpt_01:'10',cmpt_描述01:'PowerTrain',cmpt_02:null,cmpt_描述02:null,cmpt_03:null,cmpt_描述03:null,cmpt_描述03:null,cmpt_04:null,cmpt_描述05:null,{ewr\U fr\U id:'302',ewr\U id:102,yrq:'182',文件顺序:'1',fr\U顺序:'102-182-1',制造商名称:'Teryerter',报告类别\U cd:'L',报告类别\U描述:'LightVehicle',日期\u qtr:'2018Q2',文件版本:1,文件类型\u cd:'F',应用程序\u cd:'S',应用程序\u描述:'SINGLE模型',文件名:'SFNLIBERTY4X4-0404-10-06572.PDF',ifs_文件id:'000003L041001FP-SFNLIBERTY4X4-0404-10-06572.PDF',model_或_平台:'VOLTA',model_年份:'2016',是_附件:'false',cmpt_01:'10',cmpt_描述01:'PowerTrain',cmpt_02:null,cmpt_描述02:null,cmpt_03:null,cmpt_描述03:null,cmpt_描述03:null,cmpt_04:null,CMU描述:null,CMU描述05:null];
const vin=[{vin:'2FMPK3J84FBB73425',ewr_fr_id:303},{vin:'无用',ewr_fr_id:302},{vin:'USELESS2',ewr_fr_id:302},{vin:'VIN5801',ewr_fr_id:303}];
var result=rawResponse.map(项=>{
返回{…项,
“vin”:vin.filter(obj=>obj.ewr\u fr\u id==item.ewr\u fr\u id).map(value=>value.vin)
};
});

console.log(result);
您可以在rawRequest变量上使用map函数开始映射每个项,然后在VIN上运行for循环以查找要添加的VIN

const res = rawResponse.map(item => {
    let myVins = [];
    vins.forEach(vin => {
        if(vin.ewr_fr_id===Number(item.ewr_fr_id)){
            myVins.push(vin.vin);
        }
    });
    item.vins = myVins;
    return item;
})

如果你认为任何回答都回答了你的问题,那么你可以考虑把它标记为将来读者的利益。
const res = rawResponse.map(item => {
    let myVins = [];
    vins.forEach(vin => {
        if(vin.ewr_fr_id===Number(item.ewr_fr_id)){
            myVins.push(vin.vin);
        }
    });
    item.vins = myVins;
    return item;
})