我有一个对象,我正在使用JQuery的每个函数进行迭代。但是,当我尝试使用length属性时,this stack overflow post中发布的解决方案不起作用。当我尝试获取一个长度属性值时,我在控制台中未定义,我相信这是因为我正在迭代一个对象而不是一个数组。
我的代码:
$.each(attributes, function(key, value) {
attrKey = key;
attrVal = value;
console.log(attributes.length); //returns undefined
//do something if it is the last element
});
答案 0 :(得分:2)
请尝试简单Javascript
:
for (var key in attributes) {
var value = attributes[key];
// process key,value...
}
编辑:
如果您尝试获取object
中的最后一个键/值,则不能。 Javascript对象是无序的,这意味着它们不会跟踪何时进行其他键/值分配。如果订单很重要,我建议您更改attributes
是array
个对象,其中每个对象都是单个键/值,或者使用第三方库,例如https://github.com/trentrichardson/Ordering。
如果您想获得attributes
中的密钥数量,请使用Object.keys:
Object.keys(attributes).length
答案 1 :(得分:1)
尝试
var index = 1;
$.each(attributes, function(key, value) {
if(Object.keys(attributes).length == index)
{
// Do something
}
index++;
});
答案 2 :(得分:0)
per @PaulFrench的评论:
length = Object.keys(attributes).length;
if(n < length) {
//do something
}