如何按排序键顺序获取对象中的最后一项

How to get the last item in an object by sorted key order

本文关键字:最后 一项 排序 何按 顺序 取对象 获取      更新时间:2023-09-26

假设我有一个具有此结构的对象:

{
        "friends_count": {
            "1420800660": 49391,
            "1421149814": 49344,
            "1421149955": 49344
        }
}

在对象中,第一个数字(键)是时间戳。第二个数字是值。我想获取该对象的最新项目。所以,我需要得到时间上最接近的密钥。我该怎么做?

所以,我需要得到时间上最近的钥匙

确定。只需拨打obj.friends_count Object.keys,然后sort

var key = Object.keys(obj.friends_count).sort()[0];

Object.keys 返回所提供对象的键数组,Array.sort将按升序对其进行排序,[0]将采用排序数组的第一个元素。

只是Array.sort在这里可以正常工作,因为它们的长度相同,一切都应该没问题。如果你想更清楚,那就arr.sort(function(a, b){ return a - b })[0]

如果您想从密钥时间戳中获取最新信息,只需将其转换为日期:

var something = {
            "friends_count": {
                "1420800660": 49391,
                "1421149814": 49344,
                "1421149955": 49344
            }
    },
    dateCheck,
    newest;
for(var key in something.friends_count){
    if(!dateCheck || new Date(key*1000) > dateCheck){
        dateCheck = new Date(key*1000);
        newest = something.friends_count[key];
    }
}
console.log(newest);

http://jsfiddle.net/w4dsk4m3/