迭代对象,知道你何时进行最后一次迭代

Mar*_*tin 4 javascript

我需要遍历一个Object,但知道我何时在最后一次迭代.我怎样才能做到这一点?对象没有"length"属性,所以我不能只计算迭代次数并将其与长度进行比较.我很想做类似的事情

var len = 0;
for ( key in obj ) {
    len++;
}

var i = 0;
for ( key in obj ) {
    i++;
    var last_iter = (i == len);
    ...
}
Run Code Online (Sandbox Code Playgroud)

有没有更好的办法?

Aln*_*tak 8

您可以使用以下命令找到键数:

var n = Object.keys(obj).length
Run Code Online (Sandbox Code Playgroud)

在ES5之前的浏览器上,MDN网站上提供了一个垫片.

您的问题的可能解决方案是:

var keys = Object.keys(obj);
while (keys.length) {

    var key = keys.shift();
    var value = obj[key];

    if (!keys.length) {
        // this is the last key
    }
}
Run Code Online (Sandbox Code Playgroud)