Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

86
Views
Sort Array Object in Array Object javascript

how to sort highest value in this data using javascript?

data = [{a: [{num:31}, {num:10}]},{a: [{num:4}, {num:9}]},{a: [{num:5}, {num:9}]}]

Expected

data = [{a: [{num:31}]},{a: [{num:9}]},{a: [{num:9}]}]

I try like this but never happen :)

const data_sort = data.sort((a, b) => {
                                let abc
                                if (a.a.length > 0) {
                                    abc = a.a.sort((x, y) => x.a - x.a);
                                }
                                return a - b
                            })
about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

    let data = [{a: [{num:31}, {num:10}]},{a: [{num:4}, {num:9}]},{a: [{num:5}, {num:9}]}]
    data = data.map(item => ({a:[item.a.sort((a, b) => b.num-a.num)[0]]})).sort((a, b) => b.a[0].num-a.a[0].num)

console.log(data)

about 4 years ago · Juan Pablo Isaza Report

0

Assuming this is the correct syntax, all you need is to map every item in the array to it's largest item, then sort that.

var data = [{
  a: [{num:31}, {num:10}]
}, {
  a: [{num:4}, {num:9}]
}, {
  a: [{num:6}, {num:11}]
}, {
  a: [{num:5}, {num:9}]
}];

var result = data.map(function(item) {
  return {
    a: [item.a.sort(function(a,b) {
      return a.num - b.num
    }).reverse()[0]]
  };
}).sort(function(a, b) {
  return a.a[0].num - b.a[0].num
}).reverse();
console.log(result)
.as-console-wrapper {
  max-height: 100% !important;
}

about 4 years ago · Juan Pablo Isaza Report

0

Map and Reduce

const data = [{ a: [{ num: 31 }, { num: 10 }] }, { a: [{ num: 4 }, { num: 9 }] }, { a: [{ num: 5 }, { num: 9 }] }];
data.map((value) => {
  value.a = [
    {
      num: value.a.reduce((accumulatedValue, currentValue) => {
        return Math.max(accumulatedValue.num, currentValue.num);
      }),
    },
  ];
  return value;
});
console.log(data)

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!