Jak uzyskać bieżący indeks w mapie prototypowej Array?

Używam Array.prototype.map.call do przechowywania w tablicy kilku obiektów listy węzłów:

function getListings() {
    return Array.prototype.map.call(document.querySelectorAll('li.g'), function(e) {
         return {
             rectangle: e.getBoundingClientRect();
         }
    }
}

Jednak chcę też przechowywać kolejność, w jakiej te elementy pojawiają się w DOM, i nie wiem, jak to zrobić.

Wiem, że przechowuję to w tablicy, a kolejność będzie indeksem tablicy. Na przykład:

var listings = getListings();
console.log(listings[0]); // rank #1
console.log(listings[1]); // rank #2
// etc...

ale wstawiam obiekt json do bazy danych, a najłatwiejszym sposobem przechowywania informacji o „rankingu” jest utworzenie właściwości „rank” w moim obiekcie, ale nie wiem, jak uzyskać „indeks” bieżąca tablica.

Coś jak:

function getListings() {
    return Array.prototype.map.call(document.querySelectorAll('li.g'), function(e) {
         return {
             rectangle: e.getBoundingClientRect(),
             rank: magicFunctionThatReturnsCurrentIndex() // <-- magic happens
         }
    }
}

Każda pomoc wskazująca mi właściwy kierunek zostanie bardzo doceniona! Dzięki

questionAnswers(1)

yourAnswerToTheQuestion