Javascript 从json响应获取最新的时间戳

Javascript 从json响应获取最新的时间戳,javascript,arrays,json,angular,typescript,Javascript,Arrays,Json,Angular,Typescript,我想从json响应中获取最新的时间戳和用户ID,其actualDataArray.status==“Approved”,以便在模板上填充它 { "dataArray": [ { "Id": 11, "Name": "HJ Enterprises", "Code": "HJC", "description": "HJ APProved", "Status": "OK", "actualDataArray": [

我想从json响应中获取最新的时间戳和用户ID,其actualDataArray.status==“Approved”,以便在模板上填充它

{
  "dataArray": [
    {
      "Id": 11,
      "Name": "HJ Enterprises",
      "Code": "HJC",
      "description": "HJ APProved",
      "Status": "OK",
      "actualDataArray": [
        {
          "timeStamp": "2019-05-07-06.26.23.991068",
          "status": "Approved",
          "userID": "@23444",
          "articles": ""
        },
        {
          "timeStamp": "2019-05-07-06.37.27.978668",
          "status": "Rejected",
          "userID": "@1234",
          "articles": "articles"
        },
        {
          "timeStamp": "2019-05-08-06.26.28.991068",
          "status": "Approved",
          "userID": "@1233e",
          "articles": ""
        },
      ],


    },

预期的输出应该是最新的时间戳和对应于该时间戳的userId。
请帮助我完成此操作。

通过此操作,您可以获得状态为“已批准”的最新对象

const数据={
“数据阵列”:[
{
“Id”:11,
“名称”:“HJ企业”,
“代码”:“HJC”,
“说明”:“HJ批准”,
“状态”:“确定”,
“actualDataArray”:[
{
“时间戳”:“2019-05-07-06.26.23.991068”,
“状态”:“已批准”,
“用户ID”:“@23444”,
“文章”:”
},
{
“时间戳”:“2019-05-07-06.37.27.978668”,
“状态”:“已拒绝”,
“userID”:“@1234”,
“条款”:“条款”
},
{
“时间戳”:“2019-05-08-06.26.28.991068”,
“状态”:“已批准”,
“userID”:“@1233e”,
“文章”:”
},
],
}
]
}
设dataArr=data.dataArray
dataArr.forEach((数据点,i)=>{
让actualDataArray=dataPoint.actualDataArray
让sortedActualDataArray=actualDataArray.sort((a,b)=>{
(新日期(a.时间戳)>新日期(b.时间戳)?1:-1
})
设timeStampElem=未定义
如果(dataPoint.status!=“Ok”){
timeStampElem=tempSearchArr[0]
}
否则{
timeStampElem=tempSearchArr[1]
}
console.log(timeStampElem)
log(`TimeStamp:${timestaplem.TimeStamp}`)
log(`UserID:${timeStampElem.UserID}`)
})
尝试以下代码:

var jsonObj={
“数据阵列”:[
{
“Id”:11,
“名称”:“HJ企业”,
“代码”:“HJC”,
“说明”:“HJ批准”,
“状态”:“确定”,
“actualDataArray”:[
{
“时间戳”:“2019-05-07-06.26.23.991068”,
“状态”:“已批准”,
“用户ID”:“@23444”,
“文章”:”
},
{
“时间戳”:“2019-05-07-06.37.27.978668”,
“状态”:“已拒绝”,
“userID”:“@1234”,
“条款”:“条款”
},
{
“时间戳”:“2019-05-08-06.26.28.991068”,
“状态”:“已批准”,
“userID”:“@1233e”,
“文章”:”
},
],
}
]
};
var approvedUsers={};
var totalData=jsonObj.dataArray.length;
var i=0;
而(iconsole.log(已批准的用户)请将您的尝试添加到问题中。@adiga我正在尝试使用filter方法,但无法做到这一点。它工作得非常好。请将功能添加到代码中,以便如果状态为!=好的,在这种情况下,应该使用第二个最新的timestampUpdated@sm770。此外,我还添加了数组支持,因此它可以贯穿dataArray中的每个元素。aleady代码在映射函数中运行。因此,在这种情况下不需要循环?哪里有映射函数@sm770this.dataApprovalList1=this.dataApprovalList.map(数据=>{let value=data.actualBelowTheLineTradeAuditArray.sort((a,b)=>(新日期(a.reviseTimestamp)>新日期(b.reviseTimestamp))?1:-1.查找((el)=>el.reviseManualTradeStatus!=“交易”);返回{“reviseTimestamp”:value.reviseTimestamp?value.reviseTimestamp:null,“reviseUserId”:value.reviseUserId?value.reviseUserId:null,“reviseManualTradeStatus”:data.reviseManualTradeStatus?value.reviseManualTradeStatus:null,