¿Cómo puedo ordenar y reorganizar una matriz que se ve así?
fields = [ { uid: '2c2162cc-37d0-f1e3-96c2-6d9ccb50f38d', field: new ObjectId("627f816d8443318c6aaa1220" }, { uid: '2aa60f96-135b-e179-2b46-516c87a877cc', field: new ObjectId("6283cb3ca573a56e11587c46"), } ]para que coincida con la disposición de esta matriz:
order = [ '6283cb3ca573a56e11587c46', '627f816d8443318c6aaa1220' ]Aquí está la salida que estoy buscando:
[ { uid: '2aa60f96-135b-e179-2b46-516c87a877cc', field: new ObjectId("6283cb3ca573a56e11587c46"), }, { uid: '2c2162cc-37d0-f1e3-96c2-6d9ccb50f38d', field: new ObjectId("627f816d8443318c6aaa1220"), } ]findIndex y ordenar pero estoy muy confundido
fields.sort((a: any, b: any) => order.indexOf(a.field) - order.indexOf(b.field)) // It does not workDebe usar el método de sort en la matriz. Y luego compare el índice de field en la matriz de pedidos.
const data = [ { uid: '2aa60f96-135b-e179-2b46-516c87a877cc', field: "6283cb3ca573a56e11587c46", value: 'test val 6' }, { uid: '2c2162cc-37d0-f1e3-96c2-6d9ccb50f38d', field: "627f816d8443318c6aaa1220", value: '' } ] const order = [ '6283cb3ca573a56e11587c46', '627f816d8443318c6aaa1220' ]; data.sort((a,b) => order.indexOf(a.field) - order.indexOf(b.field)); console.log(data); Aviso: la clase ObjectId no está definida aquí, así que la cambié a cadena aquí para simplificar.