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

如何按指定日期过滤嵌套对象数组且保留原整体结构

实现方案

你只需要遍历外层数组的每一项,对内层的user_data_stays数组做过滤即可,不需要用到some方法,根据是否需要保留原数组,有两种实现方式:

方式1:生成新数组,不修改原数据

如果你不希望改动原始的data数组,可以用map遍历加对象浅拷贝的方式实现:

const targetDate = '2021-10-01T12:55:00.000Z';
const filteredData = data.map(item => {
  return {
    // 拷贝外层对象的其他属性(比如id)
    ...item,
    user_data: {
      // 拷贝user_data下的其他属性,避免丢失
      ...item.user_data,
      // 仅过滤符合日期条件的stay项
      user_data_stays: item.user_data.user_data_stays.filter(stay => stay.date === targetDate)
    }
  };
});

方式2:直接修改原数组

如果允许改动原始的data数组,直接用forEach遍历修改即可:

const targetDate = '2021-10-01T12:55:00.000Z';
data.forEach(item => {
  item.user_data.user_data_stays = item.user_data.user_data_stays.filter(stay => stay.date === targetDate);
});

处理后的结果会完整保留原数组的结构,仅user_data_stays数组中符合日期的项会被保留,不符合的会被剔除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 04:54:05