You need to enable JavaScript to run this app. JavaScript 根据指定键提取JSON对象 筛选type为vente报错解决
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript 根据指定键提取JSON对象 筛选type为vente报错解决

报错核心原因

代码的问题本质是搞错了数据层级:

  • 最外层的data是数组,数组元素本身没有type字段,它只是一个包裹了annonces属性的容器对象
  • 带type属性的单条房源,是嵌套在data[0].annonces下、以房源ID为键的二级对象中,不在data.filter直接遍历的层级上,所以TypeScript才会报“元素上不存在type属性”的类型错误。
修正后的实现逻辑
  • 先从最外层数组取出存所有房源的annonces对象
  • 用Object.entries()把键值对格式的房源集合转成可遍历的数组
  • 对数组做条件过滤,仅保留type等于vente的房源条目
  • 如果需要和原数据结构保持一致,再把过滤后的条目重新组装成键值对对象
可直接运行的代码
// 定位到嵌套的房源集合
const allAnnonces = data[0].annonces;

// 过滤符合type="vente"条件的房源
const filteredEntries = Object.entries(allAnnonces).filter(([_, detail]) => {
  return detail.type === "vente";
});

// 还原为和原结构一致的对象格式
const data_filter = Object.fromEntries(filteredEntries);

console.log(data_filter);
大文件处理提示
  • 处理大体量JSON时,不要凭印象写遍历逻辑,先打印一级结构确认属性路径,避免层级判断错误
  • 上述代码执行后,仅会保留ID为20165794的房源条目,其余两条type为location的内容会被过滤移除

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.01 23:24:06