如何同时按key和value条件过滤对象,检测教学医院相关字段空值
问题原因
你原有代码的filter逻辑存在逻辑冲突:filter每次迭代仅处理单个键值对,要求单个key同时匹配Teaching Hospital Name和Teaching Hospital Tax ID两个完全不同的字段名,该判定永远不成立,因此永远返回空结果。
实现方案
两种实现方式,可根据后续扩展需求选择:
方案1:直接判定指定字段(性能更高,适合固定字段规则)
// 取出两个目标字段的值 const hospitalName = item['Teaching Hospital Name'] const hospitalTaxId = item['Teaching Hospital Tax ID'] const result = {} // 匹配「Name非空、Tax ID为空」规则时生成返回结果 if (hospitalName?.trim() && !hospitalTaxId?.trim()) { result['Teaching Hospital Tax ID'] = hospitalTaxId }
方案2:遍历对象实现(适合后续扩展多组同类型校验规则)
// 先判定业务规则是否触发 const isRuleMatched = item['Teaching Hospital Name']?.trim() && !item['Teaching Hospital Tax ID']?.trim() // 过滤对应键后转回对象格式 const result = Object.fromEntries( Object.entries(item).filter(([key]) => isRuleMatched && key === 'Teaching Hospital Tax ID' ) )
验证结果
使用你提供的示例对象测试,两种方案返回结果均符合要求:
{ "Teaching Hospital Tax ID": "" }
内容的提问来源于stack exchange,提问作者Sharif
相关产品推荐
相关产品推荐

