Вы можете сделать что-то вроде этого:
var first = true;
var prev;
for (var el in object) {
// Some work here
if (first) {
first = false;
} else {
doSomething(prev, object[prev]);
}
prev = el;
}
if (prev !== undefined) { // There was at least one element
doSomethingElse(prev, object[prev]); // Prev is now last of all elements
}
Это в случае, если вы хотите обработать все элементы, кроме последнего, одним способом (doSomething
) и обработать последний элемент другим способом (doSomethingElse
).
Если вы хотите обработать все элементы одним способом (doSomething
) и хотите выполнить дополнительную обработку только для последнего элемента (doSomethingExtra
), вы можете сделать:
var prev;
for (var el in object) {
// Some work here
doSomething(el, object[el]);
prev = el;
}
if (prev !== undefined) { // There was at least one element
doSomethingExtra(prev, object[prev]); // Prev is now last of all elements
}
Чтобы сделать его еще короче, вы можете сделать то же самое, что сделал Тёрок Габор в гисте, которую он предоставил , используя переменную el
, то есть:
var el;
for (el in object) {
// Some work here
doSomething(el, object[el]);
}
if (el !== undefined) { // There was at least one element
doSomethingExtra(el, object[el]); // El is now last of all elements
}
Надеюсь, это поможет.