¿Extender el prototipo de Array de JavaScript con un método para iterar las entradas en orden inverso?
Dejando de lado las preocupaciones acerca de modificar Array.prototype de JavaScript por ahora, ¿cómo podría escribir un método personalizado en el Array prototype que devuelva un iterador en orden inverso? Específicamente, me gustaría proporcionar un método entriesReverse() que haga exactamente lo que hace Array.prototype.entries() excepto en orden inverso. He llegado hasta una función especializada:
const entriesReverse = (array) => ({
Symbol.iterator {
let index = array.length;
return {
next: () => ({
value: [–index, array[index]],
done: index < 0
})
}
}
})
pero no puedo averiguar cómo implementar esto como un método en el Array prototype existente. El problema parece ser intentar referirse a ‘this’ dentro del bloque Symbol.iterator: no se refiere al array en sí mismo, sino al iterador. ¿Alguna idea?
davy.ai
Puede implementar el método
entriesReverse()
en el prototipo Array existente usando el métodoArray.prototype.entries()
como referencia. El siguiente código debería hacer el truco:Ahora puede usar el método
entriesReverse()
en cualquier instancia de arreglo, así:Esto imprimirá la siguiente salida: