Skip to content
Advertisement

JavaScript: Comparing Two objects in one array

I’m new to this world of vanilla javascript. I’ve been trying complete some challenges but it seems like I’m unable to find the solution to a challenge.

The task is:“Sort array by object property”

  1. Write a function that takes an array of objects as an argument
  2. Sort the array by property b in ascending order
  3. Return the sorted array

function arraySorter(arr) {
  return arr
    .map((e) => {
      return Object.values(e);
    })
    .filter((e, i) => {
      console.log(e[1]);
      return;
    });
}

console.log(
  arraySorter([
    { a: 1, b: 2 },
    { a: 5, b: 4 },
  ])
);

Expected output

//expected output: [{a:1,b:2},{a:5,b:4}]
// expected output: [{a:5,b:4},{a:2,b:10}]

Advertisement

Answer

To sort with numbers.

  1. sorting ascending ( first argument – second argument )
  2. sorting descending ( second argument – first argument ),

as sort function should return

  1. positive number if the first argument is bigger than the second argument.
  2. negative number if second argument is bigger than first argument.
  3. zero if both are equal.
    function arraySorter(arr) {
       return arr.sort((x, y) => x.b - y.b)
    }
    
    console.log(arraySorter([{a:1,b:2},{a:5,b:4}])) //expected output: [{a:1,b:2},{a:5,b:4}]
    console.log(arraySorter([{a:2,b:10},{a:5,b:4}])) //Expected output: [{a:5,b:4},{a:2,b:10}]
    console.log(arraySorter([{a:1,b:7},{a:2,b:1}])) //Expected output: [{a:2,b:1},{a:1,b:7}]
User contributions licensed under: CC BY-SA
5 People found this is helpful
Advertisement