如何获取对象中的最后一项

时间:2015-01-13 16:05:08

标签: javascript arrays node.js

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

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

在对象中,第一个数字(密钥)是时间戳。第二个数字是值。我想获得该对象的最新项目。所以,我需要获得最接近时间的密钥。我必须这样做吗?

抱歉,我是node.js和Javascript的初学者。

3 个答案:

答案 0 :(得分:3)

  

所以,我需要获得最接近时间的密钥

不确定。只需拨打Object.keys上的obj.friends_count,然后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]

答案 1 :(得分:1)

如果您想从关键时间戳中获取最新信息,请将其转换为日期:

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/

答案 2 :(得分:0)

您可以使用Object.keys(obj)来获取最后一个项目,如下所示:

var fruitObject = { 'a' : 'apple', 'b' : 'banana', 'c' : 'carrot' };
fruitObject[Object.keys(fruitObject)[Object.keys(fruitObject).length - 1]] // "carrot"