// const first = data.groups_with_selected[7]; // const second = data.groups_with_selected[20]; // data.groups_with_selected.splice(2, 0, first, second); // data.groups_with_selected.splice(9, 1) // data.groups_with_selected.splice(21, 1)Pero el problema con el código anterior es que puedo obtener el valor de consola ordenado actualizado en la consola. Pero en cuanto a los filtros, no se está actualizando.
la solución para este problema es agrupar primero la matriz, luego usar flat() para aplanarla/restaurarla para que tenga el mismo nivel:
const orderMap = ['third', 'second', 'first']; const array = [{name: 'first'}, {name: 'second'}, {name: 'third'}, {name: 'second'}]; const sorted = orderMap.reduce((prev, curr, index) => { prev[index] = array.filter(item => item.name === curr) return prev }, []).flat() console.log(sorted)