如何检测最后一个for循环step-js对象



我有:

Object {12: Object, 13: Object, 14: Object}

我想在这里检测最后一个循环步骤:

for (var i in objs){
   console.log(objs[i]);
}

有什么想法吗?

您可以使用标准对象方法object.keys((;

obj = {12: Object, 13: Object, 14: Object};
keys = Object.keys(obj);
console.log(keys[keys.length - 1]);
console.log(obj[keys[keys.length - 1]]);//if you want that last ..

我希望这是你想要的

var latest;
for (var i in objs){
    console.log(objs[i]);
    latest = objs[i];
}
//work with latest

由于您无法控制对象属性的顺序(它们以您无法定义的任意顺序出现(,整个想法可能会失去部分或大部分(如果不是全部的话(其相关性。

如果您实际上并不关心在最后一个循环步骤中处理的是哪个属性,下面是一个如何进行的示例:

var objs = {12: Object, 13: Object, 14: Object};
var c = 0;
var objsKeys = Object.keys(objs); [12, 13, 14]
for (var i=0; i<obsjKeys.length, i++){
    if (i===(obsjKeys.length -1)) {
        console.log("Last Run of the Loop:");
    }
    console.log(objs[obsjKeys[i]]);
}

Object.keys()仅在ES5之后可用,这意味着IE<9将不支持它。在这种情况下,您可以使用for..in:自己实现它

Object.keys = Object.keys || function(obj) {
    var tempArray = [];
    for (var key in obj) {
        if (obj.hasOwnProperty(key)) {
            tempArray.push(key);
        }
    }
    return tempArray;
};
Object.length - 1

这将给你最后一个元素。。

最新更新