¿Cómo obtener el índice actual en el mapa prototipo Array?

Estoy usando Array.prototype.map.call para almacenar en una matriz un grupo de objetos de lista de nodos:

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

Sin embargo, también quiero almacenar el orden en que aparecen estos elementos en el DOM, y no sé cómo hacerlo.

Sé que estoy almacenando esto en una matriz, y el orden sería el índice de la matriz. Por ejemplo:

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

pero estoy insertando el objeto json en una base de datos, y la forma más fácil de almacenar la información del "rango" es creando un "rango" de propiedad en mi objeto, pero no sé cómo obtener el "índice" matriz actual

Algo como:

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

¡Cualquier ayuda que me indique la dirección correcta será muy apreciada! Gracias