Quiero insertar nuevos elementos no al final de la matriz, sino directamente en una posición adecuada. Para hacer esto, uso el método .splice() , en el que paso la función de devolución de llamada getSortPos()
acc.splice(getSortPos(acc, newAccount, compareAccounts), 0, newAccount)Esta función toma una matriz, un nuevo elemento y una función de comparación y calcula la posición adecuada para insertar el nuevo elemento
const getSortPos = (arr, el, cmpFn) => { let pos = 0; if (!arr?.length) { return pos; } while (cmpFn(arr[pos], el) < 0) { pos++; } return ++pos; }La solución parece funcionar a primera vista, pero creo que tiene algunos defectos y no se ve elegante.
Estaría muy agradecido por cualquier consejo.