繁体   English   中英

比较 2 arrays 并从一个数组到另一个数组查找属性值

[英]Compare 2 arrays and find an attribute's value from one array to another

我有下面提到的 2 arrays。

const arr1 = [{ Id: "a153O000001mjD1QAI", Document_ID__c: 176767 }];


const arr2 = [
  {
    classification: "Scientific Response",
    core_san_localization_translation: ["No"],
    core_san_verbal_only: "false",
    id: "176767",
    major_version_number: "1",
    minor_version_number: "0",
    name: "Advance Search Doc_General Information",
    response_type: ["General"],
    size: 70953,
    subtype: "Local",
    title: "Advance Search Doc_General Information",
    type: "Medical Information",
  },

  {
    classification: "Scientific Response",
    core_san_localization_translation: ["No"],
    core_san_verbal_only: "false",
    id: "127462",
    major_version_number: "1",
    minor_version_number: "0",
    name: "APPROVAL verdict APPROVED FOR USE",
    response_type: ["Administration"],
    size: 1362339,
    subtype: "Local",
    title: "ahsdjhsahdasld",
    type: "Medical Information",
  },

  {
    classification: "Scientific Response",
    core_san_localization_translation: ["No"],
    core_san_verbal_only: "false",
    id: "127461",
    major_version_number: "2",
    minor_version_number: "0",
    name: "APPROVAL verdict APPROVED ,MINOR CHANGES",
    response_type: ["Administration"],
    size: 1362339,
    subtype: "Local",
    title: "ahsdjhsahdasld",
    type: "Medical Information",
  },

  {
    classification: "Scientific Response",
    core_san_answer: "Dosage",
    core_san_localization_translation: ["No"],
    core_san_verbal_only: "false",
    id: "176776",
    major_version_number: "1",
    minor_version_number: "0",
    name: "General Info Test 2",
    response_type: ["Pharmacokinetics and Pharmacodynamics"],
    size: 25432,
    subtype: "Local",
    title: "General Info Test 2",
    type: "Medical Information",
  },
];

我想从 arr2 中的 arr1 搜索属性“Document_ID__c”的值,如果它与 arr2 中任何元素上的“176767”匹配,只需创建一个新数组并存储该元素。

例如,我想要的 output 是

const finalarray = [
  {
    classification: "Scientific Response",
    core_san_localization_translation: ["No"],
    core_san_verbal_only: "false",
    id: "176767",
    major_version_number: "1",
    minor_version_number: "0",
    name: "Advance Search Doc_General Information",
    response_type: ["General"],
    size: 70953,
    subtype: "Local",
    title: "Advance Search Doc_General Information",
    type: "Medical Information",
  },
];

请帮我解决这个问题。

 const arr1 = [{ Id: "a153O000001mjD1QAI", Document_ID__c: 176767 }]; const arr2 = [ { classification: "Scientific Response", core_san_localization_translation: ["No"], core_san_verbal_only: "false", id: "176767", major_version_number: "1", minor_version_number: "0", name: "Advance Search Doc_General Information", response_type: ["General"], size: 70953, subtype: "Local", title: "Advance Search Doc_General Information", type: "Medical Information", }, { classification: "Scientific Response", core_san_localization_translation: ["No"], core_san_verbal_only: "false", id: "127462", major_version_number: "1", minor_version_number: "0", name: "APPROVAL verdict APPROVED FOR USE", response_type: ["Administration"], size: 1362339, subtype: "Local", title: "ahsdjhsahdasld", type: "Medical Information", }, { classification: "Scientific Response", core_san_localization_translation: ["No"], core_san_verbal_only: "false", id: "127461", major_version_number: "2", minor_version_number: "0", name: "APPROVAL verdict APPROVED,MINOR CHANGES", response_type: ["Administration"], size: 1362339, subtype: "Local", title: "ahsdjhsahdasld", type: "Medical Information", }, { classification: "Scientific Response", core_san_answer: "Dosage", core_san_localization_translation: ["No"], core_san_verbal_only: "false", id: "176776", major_version_number: "1", minor_version_number: "0", name: "General Info Test 2", response_type: ["Pharmacok.netics and Pharmacodynamics"], size: 25432, subtype: "Local", title: "General Info Test 2", type: "Medical Information", }, ]; let finalArray = []; arr1.forEach(ar1 => finalArray.push(arr2.filter(ar2 => +ar2.id ===ar1.Document_ID__c))); console.log(finalArray);

尝试这个:

let mArray = []


for (i in arr1) {
    for (j in arr2){
      if (arr1[i].Document_ID__c == arr2[j].id) {
         mArray.push(arr2[j])
      }
    }
}

console.log(mArray);

你可以试试这个:

const arr1 = [{ Id: "a153O000001mjD1QAI", Document_ID__c: 176767 }];


const arr2 = [
  {
    classification: "Scientific Response",
    core_san_localization_translation: ["No"],
    core_san_verbal_only: "false",
    id: "176767",
    major_version_number: "1",
    minor_version_number: "0",
    name: "Advance Search Doc_General Information",
    response_type: ["General"],
    size: 70953,
    subtype: "Local",
    title: "Advance Search Doc_General Information",
    type: "Medical Information",
  },

  {
    classification: "Scientific Response",
    core_san_localization_translation: ["No"],
    core_san_verbal_only: "false",
    id: "127462",
    major_version_number: "1",
    minor_version_number: "0",
    name: "APPROVAL verdict APPROVED FOR USE",
    response_type: ["Administration"],
    size: 1362339,
    subtype: "Local",
    title: "ahsdjhsahdasld",
    type: "Medical Information",
  },

  {
    classification: "Scientific Response",
    core_san_localization_translation: ["No"],
    core_san_verbal_only: "false",
    id: "127461",
    major_version_number: "2",
    minor_version_number: "0",
    name: "APPROVAL verdict APPROVED ,MINOR CHANGES",
    response_type: ["Administration"],
    size: 1362339,
    subtype: "Local",
    title: "ahsdjhsahdasld",
    type: "Medical Information",
  },

  {
    classification: "Scientific Response",
    core_san_answer: "Dosage",
    core_san_localization_translation: ["No"],
    core_san_verbal_only: "false",
    id: "176776",
    major_version_number: "1",
    minor_version_number: "0",
    name: "General Info Test 2",
    response_type: ["Pharmacokinetics and Pharmacodynamics"],
    size: 25432,
    subtype: "Local",
    title: "General Info Test 2",
    type: "Medical Information",
  },
];

var newObj = arr1.map(j =>{
  return  arr2.filter(e=>{
       return e.id == j.Document_ID__c
   })
})
 console.log(newObj)

const finalArray = arr2.filter((a) => arr1.some((b) => a.id == b.Document_ID__c));
console.log(finalArray);

您可以使用Array.some()方法来测试数组中是否至少有一个元素通过提供的 function 实现的测试。

工作演示:

 const arr1 = [{ Id: "a153O000001mjD1QAI", Document_ID__c: 176767 }]; const arr2 = [{ classification: "Scientific Response", core_san_localization_translation: ["No"], core_san_verbal_only: "false", id: "176767", major_version_number: "1", minor_version_number: "0", name: "Advance Search Doc_General Information", response_type: ["General"], size: 70953, subtype: "Local", title: "Advance Search Doc_General Information", type: "Medical Information", }, { classification: "Scientific Response", core_san_localization_translation: ["No"], core_san_verbal_only: "false", id: "127462", major_version_number: "1", minor_version_number: "0", name: "APPROVAL verdict APPROVED FOR USE", response_type: ["Administration"], size: 1362339, subtype: "Local", title: "ahsdjhsahdasld", type: "Medical Information", }, { classification: "Scientific Response", core_san_localization_translation: ["No"], core_san_verbal_only: "false", id: "127461", major_version_number: "2", minor_version_number: "0", name: "APPROVAL verdict APPROVED,MINOR CHANGES", response_type: ["Administration"], size: 1362339, subtype: "Local", title: "ahsdjhsahdasld", type: "Medical Information", }, { classification: "Scientific Response", core_san_answer: "Dosage", core_san_localization_translation: ["No"], core_san_verbal_only: "false", id: "176776", major_version_number: "1", minor_version_number: "0", name: "General Info Test 2", response_type: ["Pharmacok.netics and Pharmacodynamics"], size: 25432, subtype: "Local", title: "General Info Test 2", type: "Medical Information", }]; const result = arr2.filter((a) => arr1.some((b) => a.id.toString() === b.Document_ID__c.toString())); console.log(result);

只需使用 JS 内置的数组迭代方法就可以了:

var result = arr2.filter(function(o1){
    // filter out  items in result2
    return arr1.some(function(o2){
        return o1['id'] == o2['Document_ID__c']; 
    });
    });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM