根据你的需求,你希望在 me.keyInfo
和 me.form.initForm(jsonRes)
中过滤掉与 matchedLoanDetail
不一致的值。以下是实现方案:
修改后的代码逻辑
success: function(result) {
var jsonRes = JSON.parse(result);
const loanInfoCodeItem = loan.child.find(val => val.code === "loanInfoCode");
const currentLoanInfoCode = loanInfoCodeItem ? loanInfoCodeItem.value : null;
const loanDetailArray = JSON.parse(loanDetailData);
const matchedLoanDetail = loanDetailArray.find(item =>
item.loanInfoCode === currentLoanInfoCode
);
// 过滤不一致的数据
function filterInconsistent(data, matchedItem) {
if (!matchedItem) return data; // 如果没有匹配项,返回原始数据
return data.map(item => {
if (item.code === 'loan') {
item.child = item.child.filter(child => {
// 保留与matchedLoanDetail一致的数据或非贷款信息字段
return !matchedItem[child.code] || matchedItem[child.code] === child.value;
});
}
return item;
});
}
// 应用过滤
const filteredJsonRes = filterInconsistent(jsonRes, matchedLoanDetail);
me.keyInfo = filteredJsonRes; // 使用过滤后的数据
me.form.initForm(filteredJsonRes); // 使用过滤后的数据
// ...其他原有逻辑...
}
关键点说明
过滤函数:新增的
filterInconsistent
函数会递归检查每个字段,只保留与matchedLoanDetail
中对应字段值相同的条目。贷款信息特殊处理:对
code === 'loan'
的子项进行严格匹配,其他信息(如客户信息)不做过滤。空值处理:如果
matchedLoanDetail
为空(无匹配项),则返回原始数据。一致性判断:通过
matchedItem[child.code] === child.value
确保只保留一致的数据。性能优化:使用数组的
filter
方法高效处理大量数据。
如果需要更复杂的匹配规则(如模糊匹配、多条件等),可以在过滤函数中添加相应的判断逻辑。
内容由零声教学AI助手提供,问题来源于学员提问