您好我想遍历两个数组并分别找到每个数组的id和fieldId时,我需要根据arrayA Id构造一个带有documentId和新值的arrayB 例如:如果arrayA具有三个ID(1,2,3),而arrayB具有两个fieldId(1,3),则结果应为arrayB =([documentID,yes,no,yes],[documentID,no,no,yes ])。在arrayB中,第一个值应为documentId,其余应为基于arrayA的ID的值
下面是arrayA和arrayB:-
let arrayA = [{
id: 13896,
localeData: [],
mnemonicCode: "FILD_NONIND_LNAM"
},
{
id: 13899,
localeData: [],
mnemonicCode: "FILD_NONIND_LNAM"
},
{
id: 13900,
localeData: [],
mnemonicCode: "FILD_NONIND_LNAM"
},
{
id: 13919,
localeData: [],
mnemonicCode: "FILD_NONIND_LNAM"
},
]
let arrayB = [{
documentId: 13990,
localeData: [],
fieldId: 13900,
mnemonicCode: "FILD_NONIND_LNAM"
},
{
documentId: 13990,
localeData: [],
fieldId: 13919,
mnemonicCode: "FILD_NONIND_LNAM"
},
{
documentId: 14004,
localeData: [],
fieldId: 13900,
mnemonicCode: "FILD_NONIND_LNAM"
},
{
documentId: 14004,
localeData: [],
fieldId: 13899,
mnemonicCode: "FILD_NONIND_LNAM"
}
]
上面是两个数组,其中arrayA具有id,arrayB具有FieldId和DocumentId
以下是结果:-
let result = [
[
new MetaCheckbox({
documentId: 13990,
checked: false,
}),
new MetaLabel({
fieldId: 13896
}),
new MetaLabel({
fieldId: 13899
}),
new MetaCheckbox({
checked: true,
fieldId: 13900
}),
new MetaCheckbox({
checked: true,
fieldId: 13919
}),
],
[
new MetaCheckbox({
documentId: 14004,
checked: false,
}),
new MetaLabel({
fieldId: 13896
}),
new MetaCheckbox({
checked: true,
fieldId: 13899
}),
new MetaCheckbox({
checked: true,
fieldId: 13900
}),
new MetaLabel({
fieldId: 13919
})
],
]
以下是我尝试过的功能,但没有结果,该功能是在ArrayA中提供值yes或no,而在arrayB中我尝试了多种方法,尽管未找到任何解决方案
这是try错误解决方案:
const filteredFields = metaField[0].th.map((item) => {
let result = metaField[0].tr.filter(
(loc) => loc.fieldId == item.id
);
if (temp.length) {
documentData.push(
new MetaCheckbox({
label: "yes",
checked: false,
localeCode: "abc",
}),
new MetaCheckbox({
label: "yes",
checked: true,
labelPosition: "before",
})
);
} else {
documentData.push(
new MetaLabel({
label: "no",
})
);
}
return result = documentData
});
console.log(filteredFields);
请帮助我解决此问题