You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript比较嵌套对象数组时如何忽略指定属性完成校验

解决方案

完全可以通过map回调内的嵌套解构语法实现需求,你的原有代码问题出在两点:

  1. 嵌套解构detail对象时,仅提取了要忽略的属性,没有将detail剩余属性重新组装回返回对象中,导致最终结果丢失detail字段
  2. 顶级要忽略的属性名拼写错误,你写的dbIdentifierIdentifier多了后缀,导致dbIdentifier没有被成功过滤

正确实现代码

const filteredArray = responseBody.map(({
  dbIdentifier, // 解构出顶级要忽略的属性,不加入后续返回值
  detail: {
    designAndCondition,
    developmentCompletionDate,
    ...restDetail // 收集detail中除上述两个属性外的所有剩余属性
  },
  ...restTop // 收集顶级除dbIdentifier外的所有剩余属性(address、valuation等)
}) => ({
  ...restTop,
  detail: restDetail // 把处理后的detail对象重新拼接回返回值
}))

效果验证

上述代码处理后的返回结果会自动过滤所有你不需要校验的字段,结构完全和你的预设待校验数据对齐,后续可正常按address.uniqueIdentifier排序后转JSON比对,或者用深度相等校验工具(如lodash的_.isEqual)直接比对。
如果后续需要新增忽略字段,只需在对应结构层级的解构位置添加属性名即可,适配性强。


内容的提问来源于stack exchange,提问作者DrumBongo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 04:15:00