[英]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.