检查JQuery中每个函数的最后一个元素
问题描述:
我有一个使用JQuery的每个函数遍历的对象。但是,当我尝试使用length属性时,发布在this stack overflow post中的解决方案不起作用。当我尝试获取长度属性值时,我在控制台中得到了未定义,我相信这是因为我正在遍历一个对象而不是一个数组。检查JQuery中每个函数的最后一个元素
我的代码:
$.each(attributes, function(key, value) {
attrKey = key;
attrVal = value;
console.log(attributes.length); //returns undefined
//do something if it is the last element
});
答
尝试
var index = 1;
$.each(attributes, function(key, value) {
if(Object.keys(attributes).length == index)
{
// Do something
}
index++;
});
答
尝试纯Javascript
来代替:
for (var key in attributes) {
var value = attributes[key];
// process key,value...
}
编辑:
如果你想在object
拿到最后一个键/值,就可以“T。 Javascript对象是无序的,这意味着它们不会跟踪何时进行额外的键/值分配。如果订单很重要,我会建议将attributes
更改为对象的array
,其中每个对象都是单个键/值,或者使用第三方库,如 - https://github.com/trentrichardson/Ordering。
如果你想获得在attributes
按键的数量,使用Object.keys:
Object.keys(attributes).length
答
每@ PaulFrench的评论:
length = Object.keys(attributes).length;
if(n < length) {
//do something
}
对象别t有一个长度属性...这就是为什么你得到未定义,请尝试'Object.keys(属性).length' – JonH
你应该使用Javascript原生'为...在',jQuery是有点矫枉过正像这样 – Derek
是的,这就是为什么我不知道如何检查它是否是最后一个元素,因为其他职位使用检查它是否是最后一个元素的长度。由于长度在这种情况下不起作用,所以如何检查最后一次迭代? –