javascript - 根据条件排列对象数组
问题描述
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 键在类型中升序。有什么帮助吗?
解决方案
我的建议:使用 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",
},
],
};
推荐阅读
- sql - SQL - 对除上述之外的所有行求和
- java - 由于环境的变化,java new date() 函数以 'DD-MON-YYYY HH:MM:SS' 格式给出日期。但预计只有“DD-MON-YYYY”格式
- python-3.x - name, *line = input().split() 在这里我可以使用 *line 作为列表吗?
- sqlalchemy - 如何在 sqlalchemy 中为父子集批量加载关系?
- c++ - strip - Qt 创建者在发布时无法识别文件格式,但在调试时无法识别
- python - 如何从上下文托管资源内部启动独立的上下文托管资源
- laravel - 如果有数据,请检查表单字段
- macos - 使用量角器运行脚本时获取“驱动程序信息:driver.version:未知”
- c++ - std::any 引用的可变对象
- dataframe - 无法为具有形状 (19321328, 28) 和数据类型对象的数组分配 4.03 GiB