繁体   English   中英

如何从 object 数组中查找最新日期,然后添加新字段并在反应中返回数组

[英]How to find most recent date from an array of object then add new field and return array in react

我有一个 object 数组,我想找到最近的日期。在获得最近的日期之后,我想在 object 中添加新字段并返回数组。 我检查了一些stackoverflow问题,但对我没有用,如果有人有任何想法,请指导我。

例如:

let myArray = [
               {id: "12ad5e2as", userName: "john", createdAt : 1592638519388}, 
               {id: "52se5e2as", userName: "Herry", createdAt : 1592565371062},
               {id: "25asd5e5e", userName: "Lisa", createdAt : 1592638177825},
               {id: "15ease55e", userName: "Mona", createdAt : 1586505563915}
              ]

在找到最近的日期或更大的日期之后,我想添加新字段, myArray将如下所示。

        myArray = [
                   {id: "12ad5e2as", userName: "john", createdAt : 1592638519388}, 
                   {id: "52se5e2as", userName: "Herry", createdAt : 1592565371062},
                   {id: "25asd5e5e", userName: "Lisa", createdAt : 1592638177825,
                    isMostRecent: true},
                   {id: "15ease55e", userName: "Mona", createdAt : 1586505563915}
                  ]

我尝试应用排序 function 但它添加isMostRecent: true到每个 object。 有人可以指导我该怎么做吗?

这是我尝试过的。

myArray.sort((a, b) => {
if (a.createdAt > b.createdAt)
    a.isNew = true;
    return -1;
})

任何帮助将不胜感激。

这些日期是 Unix 日期,它们是可比较的。 直截了当,实际上较小的数字是旧的,较大的数字是新的。 小旧,大新。

只需比较两个数字,看看哪个是最新的(检查大数字/日期)。 您可以在此处使用 Array.sort function。

myArray.sort(function(a, b){return b.createdAt - a.createdAt});
var newestObject = myArray[0]
newestObject["new_field"] = "New Data"
myArray[0] = newestObject

这将从大到小排序。 注意 function 主体中的 createdAt 属性。

您可以使用排序 function

myArray.sort(function(a, b){return b.createdAt - a.createdAt});

不设置 isNew 字段。 排序完成后,您可以获取具有最新日期的数组元素并将新字段添加到其中。

myArray[0].isNew=true;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM