首页 > 解决方案 > 根据条件排列对象数组

问题描述

const notificdations = [
  {
    to: "13101",
    senderId: "13279",
    senderFullName: "Md Taaj Uddin",
    type: "ON_BREAK",
    message: "Md Taaj Uddin was on break since last 2 minutes.",
    createdAt: "2021-08-20T10:12:00.068Z",
    status: "read",
  },
  {
    to: "13101",
    senderId: "13267",
    senderFullName: "Md Taaj Uddin",
    type: "IDLE",
    message: "Md Taaj Uddin is idle since last 18 minutes.",
    createdAt: "2021-08-20T10:29:56.623Z",
    status: "read",
  },
  {
    to: "13101",
    senderId: "13213",
    senderFullName: "Gaurav Rajput",
    type: "ON_BREAK",
    message: "Gaurav Rajput was on break since last 5 minutes.",
    createdAt: "2021-08-20T10:32:00.068Z",
    status: "read",
  },
  {
    to: "13101",
    senderId: "13214",
    senderFullName: "Saurav Rajput",
    type: "ON_BREAK",
    message: "Saurav Rajput was on break since last 5 minutes.",
    createdAt: "2021-08-20T10:35:00.068Z",
    status: "read",
  },
  {
    to: "13101",
    senderId: "13266",
    senderFullName: "Rohan",
    type: "IDLE",
    message: "Rohan is idle since last 18 minutes.",
    createdAt: "2021-08-20T10:40:56.623Z",
    status: "read",
  }
];

我想知道如何在上述情况下排列对象数组。我希望上面的对象数组根据类型排列意味着相同的类型聚集在一起,并根据 createdAt 键在类型中升序。有什么帮助吗?

标签: javascriptarraysobjectconditional-statements

解决方案


我的建议:使用 Object 将类型定义为键并将相关数据存储在数组中。

const arrangedNotifications = {
  IDLE: [
    {
      to: "13101",
      senderId: "13267",
      senderFullName: "Md Taaj Uddin",
      message: "Md Taaj Uddin is idle since last 18 minutes.",
      createdAt: "2021-08-20T10:29:56.623Z",
      status: "read",
    },
    {
      to: "13101",
      senderId: "13266",
      senderFullName: "Rohan",
      message: "Rohan is idle since last 18 minutes.",
      createdAt: "2021-08-20T10:40:56.623Z",
      status: "read",
    },
  ],
  ON_BREAK: [
    {
      to: "13101",
      senderId: "13279",
      senderFullName: "Md Taaj Uddin",
      message: "Md Taaj Uddin was on break since last 2 minutes.",
      createdAt: "2021-08-20T10:12:00.068Z",
      status: "read",
    },

    {
      to: "13101",
      senderId: "13213",
      senderFullName: "Gaurav Rajput",
      message: "Gaurav Rajput was on break since last 5 minutes.",
      createdAt: "2021-08-20T10:32:00.068Z",
      status: "read",
    },
    {
      to: "13101",
      senderId: "13214",
      senderFullName: "Saurav Rajput",
      message: "Saurav Rajput was on break since last 5 minutes.",
      createdAt: "2021-08-20T10:35:00.068Z",
      status: "read",
    },
  ],
};

推荐阅读