0

Here are the input data.

const input = [
 {Time: "09:00", SpotName: "Area1", DataLabel: "Location1", Data: "2", CompareFlag: "true"},
 {Time: "09:00", SpotName: "Area1", DataLabel: "Location2", Data: "1", CompareFlag: "true"},
 {Time: "09:00", SpotName: "Area1", DataLabel: "Location2", Data: "1", CompareFlag: "false"},
 {Time: "09:00", SpotName: "Area1", DataLabel: "Location3", Data: "2.0", CompareFlag: "true"},
 {Time: "09:00", SpotName: "Area1", DataLabel: "Location4", Data: "100.0", CompareFlag: "true"},
 {Time: "10:00", SpotName: "Area1", DataLabel: "Location5", Data: "0", CompareFlag: "true"},
 {Time: "10:00", SpotName: "Area1", DataLabel: "Location2", Data: "0", CompareFlag: "true"},
 {Time: "10:00", SpotName: "Area1", DataLabel: "Location3", Data: "0.0", CompareFlag: "true"},
 {Time: "11:00", SpotName: "Area1", DataLabel: "Location5", Data: "0", CompareFlag: "false"},
 {Time: "09:00", SpotName: "Area2", DataLabel: "Location3", Data: "6.0", CompareFlag: "true"},
 {Time: "10:00", SpotName: "Area2", DataLabel: "Location5", Data: "5", CompareFlag: "true"},
 {Time: "11:00", SpotName: "Area1", DataLabel: "Location2", Data: "0", CompareFlag: "false"},
 {Time: "11:00", SpotName: "Area1", DataLabel: "Location3", Data: "0.0", CompareFlag: "true"},
 {Time: "09:00", SpotName: "Area2", DataLabel: "Location5", Data: "5", CompareFlag: "false"},
 {Time: "09:00", SpotName: "Area2", DataLabel: "Location2", Data: "7", CompareFlag: "true"},
 {Time: "10:00", SpotName: "Area2", DataLabel: "Location2", Data: "7", CompareFlag: "true"},
 {Time: "10:00", SpotName: "Area2", DataLabel: "Location3", Data: "0.0", CompareFlag: "true"},
 {Time: "11:00", SpotName: "Area2", DataLabel: "Location5", Data: "5", CompareFlag: "true"},
 {Time: "11:00", SpotName: "Area2", DataLabel: "Location2", Data: "7", CompareFlag: "true"},
 {Time: "11:00", SpotName: "Area2", DataLabel: "Location3", Data: "0.0", CompareFlag: "true"}
];

I want get data as following.

const output = [
 {Time: "09:00", SpotName: "Area1", DataLabel: "Location1", Data: "2", CompareFlag: "true"},
 {Time: "09:00", SpotName: "Area1", DataLabel: "Location2", Data: "1", CompareFlag: "true"},
 {Time: "09:00", SpotName: "Area1", DataLabel: "Location2", Data: "1", CompareFlag: "false"},
 {Time: "10:00", SpotName: "Area1", DataLabel: "Location2", Data: "0", CompareFlag: "true"},
 {Time: "11:00", SpotName: "Area1", DataLabel: "Location2", Data: "0", CompareFlag: "false"},
 {Time: "09:00", SpotName: "Area1", DataLabel: "Location3", Data: "2.0", CompareFlag: "true"},
 {Time: "10:00", SpotName: "Area1", DataLabel: "Location3", Data: "0.0", CompareFlag: "true"},
 {Time: "11:00", SpotName: "Area1", DataLabel: "Location3", Data: "0.0", CompareFlag: "true"},
 {Time: "09:00", SpotName: "Area1", DataLabel: "Location4", Data: "100.0", CompareFlag: "true"},
 {Time: "10:00", SpotName: "Area1", DataLabel: "Location5", Data: "0", CompareFlag: "true"},
 {Time: "11:00", SpotName: "Area1", DataLabel: "Location5", Data: "0", CompareFlag: "false"},
 {Time: "09:00", SpotName: "Area2", DataLabel: "Location5", Data: "5", CompareFlag: "false"},
 {Time: "10:00", SpotName: "Area2", DataLabel: "Location5", Data: "5", CompareFlag: "true"},
 {Time: "11:00", SpotName: "Area2", DataLabel: "Location5", Data: "5", CompareFlag: "true"},
 {Time: "09:00", SpotName: "Area2", DataLabel: "Location2", Data: "7", CompareFlag: "true"},
 {Time: "10:00", SpotName: "Area2", DataLabel: "Location2", Data: "7", CompareFlag: "true"},
 {Time: "11:00", SpotName: "Area2", DataLabel: "Location2", Data: "7", CompareFlag: "true"},
 {Time: "09:00", SpotName: "Area2", DataLabel: "Location3", Data: "6.0", CompareFlag: "true"},
 {Time: "10:00", SpotName: "Area2", DataLabel: "Location3", Data: "0.0", CompareFlag: "true"},
 {Time: "11:00", SpotName: "Area2", DataLabel: "Location3", Data: "0.0", CompareFlag: "true"}
];

I want to sort and groupby "SpotName" and "DataLabel", "CompareFlag". Sort is input order not alphabetic. I'm trying to implement it as a recursive function, but it doesn't work. Who can help me? This is javascript.

  • 1
    Does this help ? https://stackoverflow.com/questions/6129952/sort-javascript-array-by-two-numeric-fields – Marius ROBERT May 16 '22 at 07:57
  • also: [How to sort an array of objects by multiple fields?](https://stackoverflow.com/questions/6913512/how-to-sort-an-array-of-objects-by-multiple-fields) – pilchard May 16 '22 at 08:01

0 Answers0