Why sort(a,b => a[1]-b[1]) won't work but long version of sort works

Tell us what’s happening:
to sort by alphabetical order of Array I’ve tried to use
arr1.sort((a,b) => a-b) ) which works with numbers
I was curious to why would not work with the Alphabetics.

  **Your code so far**

function updateInventory(arr1, arr2) {
  const arr1Inv = arr1.map(el => el[1]);
  const arr2Inv = arr2.map(el => el[1]);
  for (let i=0; i<arr2Inv.length; i++) {
      if ( arr1Inv.includes(arr2Inv[i]) ) {
          let index = arr1Inv.indexOf(arr2Inv[i]);
          arr1[index][0] += arr2[i][0];
         } else {
  arr1.sort(function(a, b) {
  if (a[1] > b[1]) {
    return 1;
  if (a[1] < b[1]) {
    return -1;
  return 0;
  return arr1;

// Example inventory lists
var curInv = [
  [21, "Bowling Ball"], [2, "Dirty Sock"], [1, "Hair Pin"], [5, "Microphone"]

var newInv = [
 [2, "Hair Pin"], [3, "Half-Eaten Apple"], [67, "Bowling Ball"], [7, "Toothpaste"]

console.log(updateInventory(curInv, newInv));
  **Your browser information:**

User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 11_1_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.128 Safari/537.36.

Challenge: Inventory Update

Link to the challenge:

When in doubt, try a small example

console.log("a" - "b");

The callback function for sort has to return a number, and the array is sorted based on if that number is positive, negative, or zero.


NaN is not a valid number ( in the name Not a Number), so you won’t get the results you want.

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.