簡體   English   中英

如何按日期過濾嵌套的對象數組

[英]How filter nested array of objects by date

我有一個這樣的數組:

const data =  [
  {
    id: '3499934913',
    user_data: {
      user_data_stays: [
        {
          value: '30.0',
          date: '2021-10-01T12:55:00.000Z',
        },
        {
          value: '30.0',
          date: '2021-11-01T12:55:00.000Z',
        },
        {
          value: '30.0',
          date: '2021-13-01T12:55:00.000Z',
        }
      ],
    }
  },
  {
    id: '43534535',
    user_data: {
      user_data_stays: [
        {
          value: '30.0',
          date: '2021-11-01T12:55:00.000Z',
        },
        {
          value: '30.0',
          date: '2021-12-01T12:55:00.000Z',
        },
        {
          value: '30.0',
          date: '2021-13-01T12:55:00.000Z',
        }
      ],
    }
  },
]

如何保留整個數組的結構,但僅在user_data_stays中過濾那些日期等於2021-10-01T12:55:00.000Z的對象?

我嘗試使用過濾器和一些但我無法進入內部的嵌套元素。 我認為問題是嵌套的數量,我無法處理。 我將不勝感激你的幫助。

您可以在外部數組上使用 forEach 並在解構的幫助下對內部數組運行 filter 方法,object 引用將就地更新外部 object。

 const data = [ { id: "3499934913", user_data: { user_data_stays: [ { value: "30.0", date: "2021-10-01T12:55:00.000Z" }, { value: "30.0", date: "2021-11-01T12:55:00.000Z" }, { value: "30.0", date: "2021-13-01T12:55:00.000Z" }, ], }, }, { id: "43534535", user_data: { user_data_stays: [ { value: "30.0", date: "2021-11-01T12:55:00.000Z" }, { value: "30.0", date: "2021-12-01T12:55:00.000Z" }, { value: "30.0", date: "2021-13-01T12:55:00.000Z" }, ], }, }, ]; data.forEach(({ user_data }) => { user_data.user_data_stays = user_data.user_data_stays.filter(({ date }) => date === '2021-10-01T12:55:00.000Z'); }); console.log(data);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM