[英]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.