在数组 [1].value = array[2].key 的情况下获取比较数组 [2] 的值



我有一个示例 jsonArray1

[
{
"name": "Primary Category",
"value": [
{
"value": "Fracture",
"Diagnosis_Code": ["DIAG003"],
"name": "Primary Category",
"FK_Diagnosis_Content_ID": 3,
"FK_Diagnosis_Category_ID": 1
},
{
"value": "Osteoarthritis",
"Diagnosis_Code": ["DIAG001"],
"name": "Primary Category",
"FK_Diagnosis_Content_ID": 1,
"FK_Diagnosis_Category_ID": 1
},
{
"value": "Osteonecrosis",
"Diagnosis_Code": ["DIAG002", "DIAG004"],
"name": "Primary Category",
"FK_Diagnosis_Content_ID": 2,
"FK_Diagnosis_Category_ID": 1
},
]
},
{
"name": "Anatomy",
"value": [
{
"value": "Hip",
"Diagnosis_Code": ["DIAG001"],
"name": "Anatomy",
"FK_Diagnosis_Content_ID": 4,
"FK_Diagnosis_Category_ID": 2
},
{
"value": "Pelvis",
"Diagnosis_Code": ["DIAG002", "DIAG003", "DIAG004"],
"name": "Anatomy",
"FK_Diagnosis_Content_ID": 6,
"FK_Diagnosis_Category_ID": 2
}
]
}
]

我有第二个样本 jsonArray2

[ 'Primary Category': 'Fracture', 'Anatomy': 'Pelvis' ]

正如你在Array2上看到的,有一些价值Fracture and Pelvis,我想根据Array2 value得到Array1.FK_Diagnosis_Content_ID

所以根据Array2我会得到一个结果:[2, 6] 因为Array1中的FractureFK_Diagnosis_Content_ID= 2,Array1中的PelvisFK_Diagnosis_Content_ID= 6

我花了很多时间来做到这一点,但我不擅长处理数组,

有没有办法得到结果?

我已经更正Array2为有效数组。

您可以在第一个数组上使用Array#reduce,并在每次迭代中检查项目的值是否包含在Array2中:

const Array1 = [{"name":"Primary Category","value":[{"value":"Fracture","Diagnosis_Code":["DIAG003"],"name":"Primary Category","FK_Diagnosis_Content_ID":3,"FK_Diagnosis_Category_ID":1},{"value":"Osteoarthritis","Diagnosis_Code":["DIAG001"],"name":"Primary Category","FK_Diagnosis_Content_ID":1,"FK_Diagnosis_Category_ID":1},{"value":"Osteonecrosis","Diagnosis_Code":["DIAG002","DIAG004"],"name":"Primary Category","FK_Diagnosis_Content_ID":2,"FK_Diagnosis_Category_ID":1}]},{"name":"Anatomy","value":[{"value":"Hip","Diagnosis_Code":["DIAG001"],"name":"Anatomy","FK_Diagnosis_Content_ID":4,"FK_Diagnosis_Category_ID":2},{"value":"Pelvis","Diagnosis_Code":["DIAG002","DIAG003","DIAG004"],"name":"Anatomy","FK_Diagnosis_Content_ID":6,"FK_Diagnosis_Category_ID":2}]}];
const Array2 = ['Fracture', 'Pelvis'];
const result = Array1.reduce((acc, item) => {
item.value.forEach(i => {
if (Array2.includes(i.value)) {
acc.push(i.FK_Diagnosis_Content_ID);
}
})
return acc;
}, []);
console.log(result);

顺便说一句,骨折FK_Diagnosis_Content_ID与您在问题中提到的相反,骨折3

最新更新