Tengo la primera matriz que es como
status = [ {title: 'pending', order: 1}, {title: 'success', order: 2} ]
Y tengo la segunda matriz que es como
task = [ {status: 'success', price: 100}, {status: 'success', price: 150}, {status: 'pending', price: 100}, {status: 'success', price: 300} ]
¿Cómo puedo ordenar esto para que los resultados sean como
task = [ {status: 'pending', price: 100}, {status: 'success', price: 100}, {status: 'success', price: 150}, {status: 'success', price: 300} ]
ordenar por orden de estado desde la primera matriz
Puede lograr fácilmente el resultado usando Map y pasando la función de comparación al método de sort
const status = [ { title: "pending", order: 1 }, { title: "success", order: 2 }, ]; const task = [ { status: "success", price: 100 }, { status: "success", price: 150 }, { status: "pending", price: 100 }, { status: "success", price: 300 }, ]; const dict = new Map(status.map(o => [o.title, o.order])); const result = [...task].sort((a, b) => dict.get(a.status) - dict.get(b.status)); console.log(result);
/* This is not a part of answer. It is just to give the output fill height. So IGNORE IT */ .as-console-wrapper { max-height: 100% !important; top: 0; }