Tengo una función llamada getItems que devuelve una matriz de objetos de forma asíncrona. Cada objeto tiene un método isOccupied que devuelve un valor booleano.
Escribí una función que toma un índice y devuelve si el elemento índice-ésimo en isOccupied de la matriz es verdadero o falso.
Escribí una función para devolver el índice del elemento de la matriz devuelta por getItems .
async getOccupiedItemIndex() { let selectedIdx = 0; return getItems().then(items => { items.forEach((item, index) => { if (item.isOccupied()) selectedIdx = index; }); return selectedIndex; }); }Quiero mejorar esta función porque
El hecho de que estemos usando una función async para usar una matriz lo hace largo.
Veo que si no se encuentra ningún elemento, ¿podría devolver nulo?
Podemos suponer que solo habrá un elemento ocupado en la matriz.
¿Alguna idea para mejorar esto?
Podrías usar Array.findIndex() :
const getOccupiedItemIndex = () => getItems().then( items => items.findIndex( item => item.isOccupied() ) )encontrará el primer índice ocupado o -1 si no se encuentra
Podría devolver la variable correcta. selectedIndex no está declarado. Solo selectedIdx Idx.