-2
const marks = [{name: "siva", value: "200"}, {name: "sai", value: "300"}, {name: "varma", value: "400"}]
const userdetails =  [{name: "varma", id: "012"},{name: "siva", id: "017"}, {name: "sai", id: "016"}]

I have 2 arrays of objects, I want to sort my array of marks based on the order i have in the userdetails, Need to order based on the name key.

Expected Output:

const updatedmarks = [{name: "varma", value: "400"},{name: "siva", value: "200"}, {name: "sai", value: "300"}]
Siva Sai
  • 319
  • 2
  • 5
  • 21
  • 1
    Your question title typed into Google _verbatim_, already gives results such as https://stackoverflow.com/q/35538509/1427878, https://stackoverflow.com/q/13304543/1427878, https://stackoverflow.com/q/54525814/1427878 – CBroe Aug 18 '22 at 08:50

1 Answers1

0

const marks = [{name: "siva", value: "200"}, {name: "sai", value: "300"}, {name: "varma", value: "400"}]
const userdetails =  [{name: "varma", id: "012"},{name: "siva", id: "017"}, {name: "sai", id: "016"}]

const sortMarks = (a, b, order) => order.findIndex(o => o.name == a.name) - order.findIndex(o => o.name == b.name);

const result = marks.sort((a, b) => sortMarks(a, b, userdetails));
console.log(result);
nem0z
  • 1,060
  • 1
  • 4
  • 17