获取对象中的属性数量,然后在for循环中获取最后一个属性

getting the amount of properties in an object then getting the last one of them in a for loop

本文关键字:属性 获取 for 循环 最后一个 然后 取对象      更新时间:2023-09-26

这应该很容易,但我不知道如何做到。

我有一个对象:

var obj = eval(result);

现在我想知道在一个循环中包含多少属性

var finalAmount = obj.length;

现在我选择循环

for (var i in obj) {
    --- some other code in here

现在的问题是,当循环达到obj的最终属性时,我需要做一些事情,所以这就是我尝试的:

if (i+1 == finalamount){
    //do something
} else {
    //do something else
}

所以基本上使用i作为指针,将其与包含有多少项的var进行比较,然后在找到循环的最后一个时,做一些事情。。。

在这种情况下,i不一定是数字,因此i+1可能无法提供所需的结果。您应该设置一个单独的计数器变量,在每次循环迭代结束时递增。

  1. 在您的情况下,obj必须是一个数组。如果不是,i+1抛出错误
  2. for in循环不确保任何序列顺序,即使它是一个数组,它也只用于迭代无序的属性。您需要传统的for(index=0;index<length;index++)(如果是Array)
  3. 如果您的obj变量是Object而不是Array,则不能仅使用对象数据结构来获取"最后一个属性",它必须提供更多信息(属性顺序)